{
    "summary": {
        "snap": {
            "added": [],
            "removed": [],
            "diff": []
        },
        "deb": {
            "added": [],
            "removed": [],
            "diff": [
                "libc-bin",
                "libc6",
                "libgssapi-krb5-2",
                "libk5crypto3",
                "libkrb5-3",
                "libkrb5support0",
                "libnetplan0",
                "libperl5.34",
                "libpolkit-agent-1-0",
                "libpolkit-gobject-1-0",
                "libpython3.10-minimal",
                "libpython3.10-stdlib",
                "libsqlite3-0",
                "netplan-generator",
                "netplan.io",
                "perl",
                "perl-base",
                "perl-modules-5.34",
                "pkexec",
                "polkitd",
                "python3-netplan",
                "python3.10",
                "python3.10-minimal"
            ]
        }
    },
    "diff": {
        "deb": [
            {
                "name": "libc-bin",
                "from_version": {
                    "source_package_name": "glibc",
                    "source_package_version": "2.35-0ubuntu3.14",
                    "version": "2.35-0ubuntu3.14"
                },
                "to_version": {
                    "source_package_name": "glibc",
                    "source_package_version": "2.35-0ubuntu3.15",
                    "version": "2.35-0ubuntu3.15"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-19542",
                        "url": "https://ubuntu.com/security/CVE-2026-19542",
                        "cve_description": "Calling tdelete on a sufficiently deep tree in the GNU C Library version 2.1 to 2.44 may write one pointer past the end of an alloca-allocated array on the stack, which may crash the application.  The tdelete implementation keeps an explicit stack of parent nodes for rebalancing, which is grown as needed while descending the tree.  Two rebalancing branches push an additional entry without checking the capacity, and write past the array when the stack is exactly full. Triggering this requires a node at a depth of exactly 40 (or 40 plus a multiple of 20), which implies a tree with at least a million nodes, so an attacker must drive a large number of insertions and deletions through an application that uses tsearch and tdelete.  The written value is a pointer into a tree node and is not directly attacker controlled.  No affected application in common distributions has been identified.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-09-14 18:17:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-6368",
                        "url": "https://ubuntu.com/security/CVE-2026-6368",
                        "cve_description": "Calling wordexp with WRDE_APPEND in the GNU C Library version 2.0 to version 2.43 can cause the interface to return invalid memory in the we_wordv member, which on subsequent calls to wordfree may abort the process.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-08-10 19:17:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-6791",
                        "url": "https://ubuntu.com/security/CVE-2026-6791",
                        "cve_description": "When expanding paths that begin with a tilde (~) followed by a username, the internal parse_tilde function extracts the username to determine the user's home directory.  The implementation allocates memory for this username directly on the stack using the strndupa macro. Because the size of this allocation was determined by the length of the user-supplied input without any bounds checks, passing an excessively long username e.g. thousands of characters, forces the thread to exhaust its stack space. Thus if an application passes untrusted, attacker-controlled input to the wordexp function, an attacker can trigger a stack clash.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-08-10 19:17:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-77117",
                        "url": "https://ubuntu.com/security/CVE-2026-77117",
                        "cve_description": "SHIFT_JISX0213 converter hang in shift_jisx0213.c",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-08-27"
                    },
                    {
                        "cve": "CVE-2026-80489",
                        "url": "https://ubuntu.com/security/CVE-2026-80489",
                        "cve_description": "EUC_JISX0213 converter hang in euc-jisx0213.c",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-08-31"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-19542",
                                "url": "https://ubuntu.com/security/CVE-2026-19542",
                                "cve_description": "Calling tdelete on a sufficiently deep tree in the GNU C Library version 2.1 to 2.44 may write one pointer past the end of an alloca-allocated array on the stack, which may crash the application.  The tdelete implementation keeps an explicit stack of parent nodes for rebalancing, which is grown as needed while descending the tree.  Two rebalancing branches push an additional entry without checking the capacity, and write past the array when the stack is exactly full. Triggering this requires a node at a depth of exactly 40 (or 40 plus a multiple of 20), which implies a tree with at least a million nodes, so an attacker must drive a large number of insertions and deletions through an application that uses tsearch and tdelete.  The written value is a pointer into a tree node and is not directly attacker controlled.  No affected application in common distributions has been identified.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-09-14 18:17:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-6368",
                                "url": "https://ubuntu.com/security/CVE-2026-6368",
                                "cve_description": "Calling wordexp with WRDE_APPEND in the GNU C Library version 2.0 to version 2.43 can cause the interface to return invalid memory in the we_wordv member, which on subsequent calls to wordfree may abort the process.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-08-10 19:17:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-6791",
                                "url": "https://ubuntu.com/security/CVE-2026-6791",
                                "cve_description": "When expanding paths that begin with a tilde (~) followed by a username, the internal parse_tilde function extracts the username to determine the user's home directory.  The implementation allocates memory for this username directly on the stack using the strndupa macro. Because the size of this allocation was determined by the length of the user-supplied input without any bounds checks, passing an excessively long username e.g. thousands of characters, forces the thread to exhaust its stack space. Thus if an application passes untrusted, attacker-controlled input to the wordexp function, an attacker can trigger a stack clash.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-08-10 19:17:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-77117",
                                "url": "https://ubuntu.com/security/CVE-2026-77117",
                                "cve_description": "SHIFT_JISX0213 converter hang in shift_jisx0213.c",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-08-27"
                            },
                            {
                                "cve": "CVE-2026-80489",
                                "url": "https://ubuntu.com/security/CVE-2026-80489",
                                "cve_description": "EUC_JISX0213 converter hang in euc-jisx0213.c",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-08-31"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Out-of-bounds stack array access in tdelete",
                            "    - debian/patches/CVE-2026-19542.patch: misc: Fix out-of-bounds array write",
                            "      in tdelete (bug 34506) in misc/tsearch.c.",
                            "    - CVE-2026-19542",
                            "  * SECURITY UPDATE: invalid memory when calling wordexp with WRDE_APPEND",
                            "    - debian/patches/CVE-2026-6368.patch: posix: Fix wordexp WRDE_APPEND to",
                            "      preserve state on non-NOSPACE errors (BZ 34090, CVE-2026-6368) in",
                            "      posix/Makefile, posix/tst-wordexp-append.c, posix/wordexp.c.",
                            "    - CVE-2026-6368",
                            "  * SECURITY UPDATE: stack clash issue when expanding long tilde paths",
                            "    - debian/patches/CVE-2026-6791.patch: posix: Fix stack overflow in wordexp",
                            "      tilde expansion (BZ 34091, CVE-2026-6791) in posix/Makefile, posix/tst-",
                            "      wordexp-tilde.c, posix/tst-wordexp-tilde.root/etc/group, posix/tst-",
                            "      wordexp-tilde.root/etc/nsswitch.conf, posix/tst-wordexp-",
                            "      tilde.root/etc/passwd, posix/wordexp.c.",
                            "    - CVE-2026-6791",
                            "  * SECURITY UPDATE: SHIFT_JISX0213 converter hang",
                            "    - debian/patches/CVE-2026-77117-1.patch: iconvdata: SHIFT_JISX0213 decoding",
                            "      lacks pending character reset (CVE-2026-77117) in",
                            "      iconvdata/shift_jisx0213.c.",
                            "    - debian/patches/CVE-2026-77117-2.patch: iconvdata: Test case for bug 34556,",
                            "      bug 34568 in iconvdata/Makefile, iconvdata/tst-jisx0213-progress.c.",
                            "    - CVE-2026-77117",
                            "  * SECURITY UPDATE: EUC_JISX0213 converter hang",
                            "    - debian/patches/CVE-2026-80489.patch: iconvdata: EUC_JISX0213 decoding",
                            "      lacks pending character reset (CVE-2026-80489) in iconvdata/euc-",
                            "      jisx0213.c.",
                            "    - CVE-2026-80489",
                            ""
                        ],
                        "package": "glibc",
                        "version": "2.35-0ubuntu3.15",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Thu, 03 Sep 2026 10:20:04 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libc6",
                "from_version": {
                    "source_package_name": "glibc",
                    "source_package_version": "2.35-0ubuntu3.14",
                    "version": "2.35-0ubuntu3.14"
                },
                "to_version": {
                    "source_package_name": "glibc",
                    "source_package_version": "2.35-0ubuntu3.15",
                    "version": "2.35-0ubuntu3.15"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-19542",
                        "url": "https://ubuntu.com/security/CVE-2026-19542",
                        "cve_description": "Calling tdelete on a sufficiently deep tree in the GNU C Library version 2.1 to 2.44 may write one pointer past the end of an alloca-allocated array on the stack, which may crash the application.  The tdelete implementation keeps an explicit stack of parent nodes for rebalancing, which is grown as needed while descending the tree.  Two rebalancing branches push an additional entry without checking the capacity, and write past the array when the stack is exactly full. Triggering this requires a node at a depth of exactly 40 (or 40 plus a multiple of 20), which implies a tree with at least a million nodes, so an attacker must drive a large number of insertions and deletions through an application that uses tsearch and tdelete.  The written value is a pointer into a tree node and is not directly attacker controlled.  No affected application in common distributions has been identified.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-09-14 18:17:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-6368",
                        "url": "https://ubuntu.com/security/CVE-2026-6368",
                        "cve_description": "Calling wordexp with WRDE_APPEND in the GNU C Library version 2.0 to version 2.43 can cause the interface to return invalid memory in the we_wordv member, which on subsequent calls to wordfree may abort the process.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-08-10 19:17:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-6791",
                        "url": "https://ubuntu.com/security/CVE-2026-6791",
                        "cve_description": "When expanding paths that begin with a tilde (~) followed by a username, the internal parse_tilde function extracts the username to determine the user's home directory.  The implementation allocates memory for this username directly on the stack using the strndupa macro. Because the size of this allocation was determined by the length of the user-supplied input without any bounds checks, passing an excessively long username e.g. thousands of characters, forces the thread to exhaust its stack space. Thus if an application passes untrusted, attacker-controlled input to the wordexp function, an attacker can trigger a stack clash.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-08-10 19:17:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-77117",
                        "url": "https://ubuntu.com/security/CVE-2026-77117",
                        "cve_description": "SHIFT_JISX0213 converter hang in shift_jisx0213.c",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-08-27"
                    },
                    {
                        "cve": "CVE-2026-80489",
                        "url": "https://ubuntu.com/security/CVE-2026-80489",
                        "cve_description": "EUC_JISX0213 converter hang in euc-jisx0213.c",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-08-31"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-19542",
                                "url": "https://ubuntu.com/security/CVE-2026-19542",
                                "cve_description": "Calling tdelete on a sufficiently deep tree in the GNU C Library version 2.1 to 2.44 may write one pointer past the end of an alloca-allocated array on the stack, which may crash the application.  The tdelete implementation keeps an explicit stack of parent nodes for rebalancing, which is grown as needed while descending the tree.  Two rebalancing branches push an additional entry without checking the capacity, and write past the array when the stack is exactly full. Triggering this requires a node at a depth of exactly 40 (or 40 plus a multiple of 20), which implies a tree with at least a million nodes, so an attacker must drive a large number of insertions and deletions through an application that uses tsearch and tdelete.  The written value is a pointer into a tree node and is not directly attacker controlled.  No affected application in common distributions has been identified.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-09-14 18:17:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-6368",
                                "url": "https://ubuntu.com/security/CVE-2026-6368",
                                "cve_description": "Calling wordexp with WRDE_APPEND in the GNU C Library version 2.0 to version 2.43 can cause the interface to return invalid memory in the we_wordv member, which on subsequent calls to wordfree may abort the process.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-08-10 19:17:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-6791",
                                "url": "https://ubuntu.com/security/CVE-2026-6791",
                                "cve_description": "When expanding paths that begin with a tilde (~) followed by a username, the internal parse_tilde function extracts the username to determine the user's home directory.  The implementation allocates memory for this username directly on the stack using the strndupa macro. Because the size of this allocation was determined by the length of the user-supplied input without any bounds checks, passing an excessively long username e.g. thousands of characters, forces the thread to exhaust its stack space. Thus if an application passes untrusted, attacker-controlled input to the wordexp function, an attacker can trigger a stack clash.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-08-10 19:17:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-77117",
                                "url": "https://ubuntu.com/security/CVE-2026-77117",
                                "cve_description": "SHIFT_JISX0213 converter hang in shift_jisx0213.c",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-08-27"
                            },
                            {
                                "cve": "CVE-2026-80489",
                                "url": "https://ubuntu.com/security/CVE-2026-80489",
                                "cve_description": "EUC_JISX0213 converter hang in euc-jisx0213.c",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-08-31"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Out-of-bounds stack array access in tdelete",
                            "    - debian/patches/CVE-2026-19542.patch: misc: Fix out-of-bounds array write",
                            "      in tdelete (bug 34506) in misc/tsearch.c.",
                            "    - CVE-2026-19542",
                            "  * SECURITY UPDATE: invalid memory when calling wordexp with WRDE_APPEND",
                            "    - debian/patches/CVE-2026-6368.patch: posix: Fix wordexp WRDE_APPEND to",
                            "      preserve state on non-NOSPACE errors (BZ 34090, CVE-2026-6368) in",
                            "      posix/Makefile, posix/tst-wordexp-append.c, posix/wordexp.c.",
                            "    - CVE-2026-6368",
                            "  * SECURITY UPDATE: stack clash issue when expanding long tilde paths",
                            "    - debian/patches/CVE-2026-6791.patch: posix: Fix stack overflow in wordexp",
                            "      tilde expansion (BZ 34091, CVE-2026-6791) in posix/Makefile, posix/tst-",
                            "      wordexp-tilde.c, posix/tst-wordexp-tilde.root/etc/group, posix/tst-",
                            "      wordexp-tilde.root/etc/nsswitch.conf, posix/tst-wordexp-",
                            "      tilde.root/etc/passwd, posix/wordexp.c.",
                            "    - CVE-2026-6791",
                            "  * SECURITY UPDATE: SHIFT_JISX0213 converter hang",
                            "    - debian/patches/CVE-2026-77117-1.patch: iconvdata: SHIFT_JISX0213 decoding",
                            "      lacks pending character reset (CVE-2026-77117) in",
                            "      iconvdata/shift_jisx0213.c.",
                            "    - debian/patches/CVE-2026-77117-2.patch: iconvdata: Test case for bug 34556,",
                            "      bug 34568 in iconvdata/Makefile, iconvdata/tst-jisx0213-progress.c.",
                            "    - CVE-2026-77117",
                            "  * SECURITY UPDATE: EUC_JISX0213 converter hang",
                            "    - debian/patches/CVE-2026-80489.patch: iconvdata: EUC_JISX0213 decoding",
                            "      lacks pending character reset (CVE-2026-80489) in iconvdata/euc-",
                            "      jisx0213.c.",
                            "    - CVE-2026-80489",
                            ""
                        ],
                        "package": "glibc",
                        "version": "2.35-0ubuntu3.15",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Thu, 03 Sep 2026 10:20:04 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libgssapi-krb5-2",
                "from_version": {
                    "source_package_name": "krb5",
                    "source_package_version": "1.19.2-2ubuntu0.8",
                    "version": "1.19.2-2ubuntu0.8"
                },
                "to_version": {
                    "source_package_name": "krb5",
                    "source_package_version": "1.19.2-2ubuntu0.10",
                    "version": "1.19.2-2ubuntu0.10"
                },
                "cves": [],
                "launchpad_bugs_fixed": [
                    2162744
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * d/t/control: Don't run kinit-pwexpire on 32-bit architectures",
                            "    The test verifies correct behavior for dates in the far future",
                            "    (~70 years after the time of test), which krb5's date parser",
                            "    only accepts on 64 bit arches.",
                            ""
                        ],
                        "package": "krb5",
                        "version": "1.19.2-2ubuntu0.10",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [],
                        "author": "Grayson Wolf <grayson.wolf@canonical.com>",
                        "date": "Thu, 20 Aug 2026 09:08:02 -0400"
                    },
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * d/p/0012-lp2162744-ts-interval.patch: Add ts_interval to accomodate",
                            "    for large time intervals (LP: #2162744)",
                            "  * d/t/kinit-pwexpire: Add test that long PW expiry dates",
                            "    do not overflow and produce wrong messages.",
                            ""
                        ],
                        "package": "krb5",
                        "version": "1.19.2-2ubuntu0.9",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2162744
                        ],
                        "author": "Grayson Wolf <grayson.wolf@canonical.com>",
                        "date": "Tue, 11 Aug 2026 17:34:22 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libk5crypto3",
                "from_version": {
                    "source_package_name": "krb5",
                    "source_package_version": "1.19.2-2ubuntu0.8",
                    "version": "1.19.2-2ubuntu0.8"
                },
                "to_version": {
                    "source_package_name": "krb5",
                    "source_package_version": "1.19.2-2ubuntu0.10",
                    "version": "1.19.2-2ubuntu0.10"
                },
                "cves": [],
                "launchpad_bugs_fixed": [
                    2162744
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * d/t/control: Don't run kinit-pwexpire on 32-bit architectures",
                            "    The test verifies correct behavior for dates in the far future",
                            "    (~70 years after the time of test), which krb5's date parser",
                            "    only accepts on 64 bit arches.",
                            ""
                        ],
                        "package": "krb5",
                        "version": "1.19.2-2ubuntu0.10",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [],
                        "author": "Grayson Wolf <grayson.wolf@canonical.com>",
                        "date": "Thu, 20 Aug 2026 09:08:02 -0400"
                    },
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * d/p/0012-lp2162744-ts-interval.patch: Add ts_interval to accomodate",
                            "    for large time intervals (LP: #2162744)",
                            "  * d/t/kinit-pwexpire: Add test that long PW expiry dates",
                            "    do not overflow and produce wrong messages.",
                            ""
                        ],
                        "package": "krb5",
                        "version": "1.19.2-2ubuntu0.9",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2162744
                        ],
                        "author": "Grayson Wolf <grayson.wolf@canonical.com>",
                        "date": "Tue, 11 Aug 2026 17:34:22 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libkrb5-3",
                "from_version": {
                    "source_package_name": "krb5",
                    "source_package_version": "1.19.2-2ubuntu0.8",
                    "version": "1.19.2-2ubuntu0.8"
                },
                "to_version": {
                    "source_package_name": "krb5",
                    "source_package_version": "1.19.2-2ubuntu0.10",
                    "version": "1.19.2-2ubuntu0.10"
                },
                "cves": [],
                "launchpad_bugs_fixed": [
                    2162744
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * d/t/control: Don't run kinit-pwexpire on 32-bit architectures",
                            "    The test verifies correct behavior for dates in the far future",
                            "    (~70 years after the time of test), which krb5's date parser",
                            "    only accepts on 64 bit arches.",
                            ""
                        ],
                        "package": "krb5",
                        "version": "1.19.2-2ubuntu0.10",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [],
                        "author": "Grayson Wolf <grayson.wolf@canonical.com>",
                        "date": "Thu, 20 Aug 2026 09:08:02 -0400"
                    },
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * d/p/0012-lp2162744-ts-interval.patch: Add ts_interval to accomodate",
                            "    for large time intervals (LP: #2162744)",
                            "  * d/t/kinit-pwexpire: Add test that long PW expiry dates",
                            "    do not overflow and produce wrong messages.",
                            ""
                        ],
                        "package": "krb5",
                        "version": "1.19.2-2ubuntu0.9",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2162744
                        ],
                        "author": "Grayson Wolf <grayson.wolf@canonical.com>",
                        "date": "Tue, 11 Aug 2026 17:34:22 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libkrb5support0",
                "from_version": {
                    "source_package_name": "krb5",
                    "source_package_version": "1.19.2-2ubuntu0.8",
                    "version": "1.19.2-2ubuntu0.8"
                },
                "to_version": {
                    "source_package_name": "krb5",
                    "source_package_version": "1.19.2-2ubuntu0.10",
                    "version": "1.19.2-2ubuntu0.10"
                },
                "cves": [],
                "launchpad_bugs_fixed": [
                    2162744
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * d/t/control: Don't run kinit-pwexpire on 32-bit architectures",
                            "    The test verifies correct behavior for dates in the far future",
                            "    (~70 years after the time of test), which krb5's date parser",
                            "    only accepts on 64 bit arches.",
                            ""
                        ],
                        "package": "krb5",
                        "version": "1.19.2-2ubuntu0.10",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [],
                        "author": "Grayson Wolf <grayson.wolf@canonical.com>",
                        "date": "Thu, 20 Aug 2026 09:08:02 -0400"
                    },
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * d/p/0012-lp2162744-ts-interval.patch: Add ts_interval to accomodate",
                            "    for large time intervals (LP: #2162744)",
                            "  * d/t/kinit-pwexpire: Add test that long PW expiry dates",
                            "    do not overflow and produce wrong messages.",
                            ""
                        ],
                        "package": "krb5",
                        "version": "1.19.2-2ubuntu0.9",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2162744
                        ],
                        "author": "Grayson Wolf <grayson.wolf@canonical.com>",
                        "date": "Tue, 11 Aug 2026 17:34:22 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libnetplan0",
                "from_version": {
                    "source_package_name": "netplan.io",
                    "source_package_version": "0.107.1-3ubuntu0.22.04.4",
                    "version": "0.107.1-3ubuntu0.22.04.4"
                },
                "to_version": {
                    "source_package_name": "netplan.io",
                    "source_package_version": "0.107.1-3ubuntu0.22.04.5",
                    "version": "0.107.1-3ubuntu0.22.04.5"
                },
                "cves": [],
                "launchpad_bugs_fixed": [
                    2104373
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * d/p/lp2104373-return-exit-code-1-on-error.patch: return exit code 1 when",
                            "    netplan exits on error (LP: #2104373)",
                            ""
                        ],
                        "package": "netplan.io",
                        "version": "0.107.1-3ubuntu0.22.04.5",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2104373
                        ],
                        "author": "Guilherme Puida Moreira <guilherme.moreira@canonical.com>",
                        "date": "Mon, 31 Aug 2026 09:05:38 -0300"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libperl5.34",
                "from_version": {
                    "source_package_name": "perl",
                    "source_package_version": "5.34.0-3ubuntu1.8",
                    "version": "5.34.0-3ubuntu1.8"
                },
                "to_version": {
                    "source_package_name": "perl",
                    "source_package_version": "5.34.0-3ubuntu1.9",
                    "version": "5.34.0-3ubuntu1.9"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-15534",
                        "url": "https://ubuntu.com/security/CVE-2026-15534",
                        "cve_description": "Perl versions through 5.45.1 have out-of-bounds heap reads and writes during regular expression matching via an undersized superlinear cache in S_regmatch.  The regex engine's superlinear cache holds one bit per subject position for each participating WHILEM node, so the bit count is the subject length plus one times the number of nodes. Nothing checks that product for positive overflow of the signed 32-bit count: a 286331153 byte subject matched against a pattern with 15 participating nodes stores the count as 14, leaving a two byte cache. The cache is then indexed from the real match position and node number, so reads go past the end of the allocation, and on failure CACHEsayNO sets a bit past it.  A caller that matches an attacker controlled subject of this size against a pattern of this shape can crash the process or corrupt heap memory.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-08-09 18:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-19487",
                        "url": "https://ubuntu.com/security/CVE-2026-19487",
                        "cve_description": "Perl versions from 5.9.4 before 5.41.9 produce incorrect regular expression match results when a stale failure flag ends the Aho-Corasick prescan early in S_find_byclass.  The prescan walks the subject for positions where the full pattern could match, and the engine tries it from the leftmost one recorded. A failing transition sets the failed flag, and a later successful transition does not clear it, so the prescan reads the stale flag as a failure and stops before it can record a candidate that starts earlier. It takes a subject where one candidate is recorded and a later character then forces a fallback through a fail link that succeeds.  Example:    \"ABCDE\" =~ m/ABCF|BCDE|C/;    # matches C at offset 2, not BCDE   \"ABCDE\" =~ m/ABCF|BCDE|C(G)/; # no match, BCDE missed  An alternation like this can miss input it should match, or match it on the wrong branch, so an access or filtering decision made from the result can be wrong.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-08-13 16:17:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-15534",
                                "url": "https://ubuntu.com/security/CVE-2026-15534",
                                "cve_description": "Perl versions through 5.45.1 have out-of-bounds heap reads and writes during regular expression matching via an undersized superlinear cache in S_regmatch.  The regex engine's superlinear cache holds one bit per subject position for each participating WHILEM node, so the bit count is the subject length plus one times the number of nodes. Nothing checks that product for positive overflow of the signed 32-bit count: a 286331153 byte subject matched against a pattern with 15 participating nodes stores the count as 14, leaving a two byte cache. The cache is then indexed from the real match position and node number, so reads go past the end of the allocation, and on failure CACHEsayNO sets a bit past it.  A caller that matches an attacker controlled subject of this size against a pattern of this shape can crash the process or corrupt heap memory.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-08-09 18:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-19487",
                                "url": "https://ubuntu.com/security/CVE-2026-19487",
                                "cve_description": "Perl versions from 5.9.4 before 5.41.9 produce incorrect regular expression match results when a stale failure flag ends the Aho-Corasick prescan early in S_find_byclass.  The prescan walks the subject for positions where the full pattern could match, and the engine tries it from the leftmost one recorded. A failing transition sets the failed flag, and a later successful transition does not clear it, so the prescan reads the stale flag as a failure and stops before it can record a candidate that starts earlier. It takes a subject where one candidate is recorded and a later character then forces a fallback through a fail link that succeeds.  Example:    \"ABCDE\" =~ m/ABCF|BCDE|C/;    # matches C at offset 2, not BCDE   \"ABCDE\" =~ m/ABCF|BCDE|C(G)/; # no match, BCDE missed  An alternation like this can miss input it should match, or match it on the wrong branch, so an access or filtering decision made from the result can be wrong.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-08-13 16:17:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Out-of-bounds heap read and write during regular",
                            "    expression matching",
                            "    - debian/patches/CVE-2026-15534_1.patch: Make super-linear cache",
                            "      countdown unsigned in regexec.c.",
                            "    - debian/patches/CVE-2026-15534_2.patch: Make superlinear cache 64-bit",
                            "      clean in regexec.c, regexp.h.",
                            "    - CVE-2026-15534",
                            "  * SECURITY UPDATE: Incorrect regular expression matches from stale",
                            "    Aho-Corasick failure flag",
                            "    - debian/patches/CVE-2026-19487.patch: Reset stale failure flag in",
                            "      Aho-Corasick prescan in regexec.c, t/re/re_tests.",
                            "    - CVE-2026-19487",
                            ""
                        ],
                        "package": "perl",
                        "version": "5.34.0-3ubuntu1.9",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Shafayat Hossain Majumder <shafayat.majumder@canonical.com>",
                        "date": "Thu, 03 Sep 2026 10:50:03 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libpolkit-agent-1-0",
                "from_version": {
                    "source_package_name": "policykit-1",
                    "source_package_version": "0.105-33ubuntu0.1",
                    "version": "0.105-33ubuntu0.1"
                },
                "to_version": {
                    "source_package_name": "policykit-1",
                    "source_package_version": "0.105-33ubuntu0.2",
                    "version": "0.105-33ubuntu0.2"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-85498",
                        "url": "https://ubuntu.com/security/CVE-2026-85498",
                        "cve_description": "[Regression in CVE-2026-4897 fix (polkit read_cookie()) - stack buffer underflow]",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-09-07"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-85498",
                                "url": "https://ubuntu.com/security/CVE-2026-85498",
                                "cve_description": "[Regression in CVE-2026-4897 fix (polkit read_cookie()) - stack buffer underflow]",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-09-07"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: stack underflow in cookie input",
                            "    - debian/patches/CVE-2026-85498.patch: Unsanitized underflow in cookie",
                            "      input in src/polkitagent/polkitagenthelperprivate.c.",
                            "    - CVE-2026-85498",
                            ""
                        ],
                        "package": "policykit-1",
                        "version": "0.105-33ubuntu0.2",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Fri, 11 Sep 2026 13:53:13 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libpolkit-gobject-1-0",
                "from_version": {
                    "source_package_name": "policykit-1",
                    "source_package_version": "0.105-33ubuntu0.1",
                    "version": "0.105-33ubuntu0.1"
                },
                "to_version": {
                    "source_package_name": "policykit-1",
                    "source_package_version": "0.105-33ubuntu0.2",
                    "version": "0.105-33ubuntu0.2"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-85498",
                        "url": "https://ubuntu.com/security/CVE-2026-85498",
                        "cve_description": "[Regression in CVE-2026-4897 fix (polkit read_cookie()) - stack buffer underflow]",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-09-07"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-85498",
                                "url": "https://ubuntu.com/security/CVE-2026-85498",
                                "cve_description": "[Regression in CVE-2026-4897 fix (polkit read_cookie()) - stack buffer underflow]",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-09-07"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: stack underflow in cookie input",
                            "    - debian/patches/CVE-2026-85498.patch: Unsanitized underflow in cookie",
                            "      input in src/polkitagent/polkitagenthelperprivate.c.",
                            "    - CVE-2026-85498",
                            ""
                        ],
                        "package": "policykit-1",
                        "version": "0.105-33ubuntu0.2",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Fri, 11 Sep 2026 13:53:13 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libpython3.10-minimal",
                "from_version": {
                    "source_package_name": "python3.10",
                    "source_package_version": "3.10.12-1~22.04.17",
                    "version": "3.10.12-1~22.04.17"
                },
                "to_version": {
                    "source_package_name": "python3.10",
                    "source_package_version": "3.10.12-1~22.04.18",
                    "version": "3.10.12-1~22.04.18"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-4360",
                        "url": "https://ubuntu.com/security/CVE-2026-4360",
                        "cve_description": "In the Tarfile.extract() function, the filter parameter is not passed properly when extracting hardlinks. An affected system that extracts content from untrusted tar files could end up writing files with an unexpected uid/gid despite the user passing filter='data' to the extract() function.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-06-30 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-15308",
                        "url": "https://ubuntu.com/security/CVE-2026-15308",
                        "cve_description": "The incremental HTML parser (html.parser.HTMLParser) allows for CPU denial-of-service through repeated unterminated markup declarations when processing uncontrolled data.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-07-09 17:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-4360",
                                "url": "https://ubuntu.com/security/CVE-2026-4360",
                                "cve_description": "In the Tarfile.extract() function, the filter parameter is not passed properly when extracting hardlinks. An affected system that extracts content from untrusted tar files could end up writing files with an unexpected uid/gid despite the user passing filter='data' to the extract() function.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-06-30 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-15308",
                                "url": "https://ubuntu.com/security/CVE-2026-15308",
                                "cve_description": "The incremental HTML parser (html.parser.HTMLParser) allows for CPU denial-of-service through repeated unterminated markup declarations when processing uncontrolled data.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-07-09 17:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Incomplete filter application in tarfile extraction",
                            "    - debian/patches/CVE-2026-4360.patch: pass the filter function through",
                            "      extract() to target extraction in Lib/tarfile.py,",
                            "      Lib/test/test_tarfile.py.",
                            "    - CVE-2026-4360",
                            "  * SECURITY UPDATE: Quadratic complexity in incremental HTML parsing",
                            "    - debian/patches/CVE-2026-15308.patch: fix quadratic complexity in",
                            "      incremental parsing in HTMLParser in Lib/html/parser.py,",
                            "      Lib/test/test_htmlparser.py.",
                            "    - CVE-2026-15308",
                            ""
                        ],
                        "package": "python3.10",
                        "version": "3.10.12-1~22.04.18",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Allen Huang <allen.huang@canonical.com>",
                        "date": "Mon, 31 Aug 2026 11:18:17 +0100"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libpython3.10-stdlib",
                "from_version": {
                    "source_package_name": "python3.10",
                    "source_package_version": "3.10.12-1~22.04.17",
                    "version": "3.10.12-1~22.04.17"
                },
                "to_version": {
                    "source_package_name": "python3.10",
                    "source_package_version": "3.10.12-1~22.04.18",
                    "version": "3.10.12-1~22.04.18"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-4360",
                        "url": "https://ubuntu.com/security/CVE-2026-4360",
                        "cve_description": "In the Tarfile.extract() function, the filter parameter is not passed properly when extracting hardlinks. An affected system that extracts content from untrusted tar files could end up writing files with an unexpected uid/gid despite the user passing filter='data' to the extract() function.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-06-30 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-15308",
                        "url": "https://ubuntu.com/security/CVE-2026-15308",
                        "cve_description": "The incremental HTML parser (html.parser.HTMLParser) allows for CPU denial-of-service through repeated unterminated markup declarations when processing uncontrolled data.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-07-09 17:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-4360",
                                "url": "https://ubuntu.com/security/CVE-2026-4360",
                                "cve_description": "In the Tarfile.extract() function, the filter parameter is not passed properly when extracting hardlinks. An affected system that extracts content from untrusted tar files could end up writing files with an unexpected uid/gid despite the user passing filter='data' to the extract() function.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-06-30 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-15308",
                                "url": "https://ubuntu.com/security/CVE-2026-15308",
                                "cve_description": "The incremental HTML parser (html.parser.HTMLParser) allows for CPU denial-of-service through repeated unterminated markup declarations when processing uncontrolled data.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-07-09 17:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Incomplete filter application in tarfile extraction",
                            "    - debian/patches/CVE-2026-4360.patch: pass the filter function through",
                            "      extract() to target extraction in Lib/tarfile.py,",
                            "      Lib/test/test_tarfile.py.",
                            "    - CVE-2026-4360",
                            "  * SECURITY UPDATE: Quadratic complexity in incremental HTML parsing",
                            "    - debian/patches/CVE-2026-15308.patch: fix quadratic complexity in",
                            "      incremental parsing in HTMLParser in Lib/html/parser.py,",
                            "      Lib/test/test_htmlparser.py.",
                            "    - CVE-2026-15308",
                            ""
                        ],
                        "package": "python3.10",
                        "version": "3.10.12-1~22.04.18",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Allen Huang <allen.huang@canonical.com>",
                        "date": "Mon, 31 Aug 2026 11:18:17 +0100"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libsqlite3-0",
                "from_version": {
                    "source_package_name": "sqlite3",
                    "source_package_version": "3.37.2-2ubuntu0.7",
                    "version": "3.37.2-2ubuntu0.7"
                },
                "to_version": {
                    "source_package_name": "sqlite3",
                    "source_package_version": "3.37.2-2ubuntu0.8",
                    "version": "3.37.2-2ubuntu0.8"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-39113",
                        "url": "https://ubuntu.com/security/CVE-2026-39113",
                        "cve_description": "Buffer Overflow vulnerability in SQLite affected version source snapshots/builds containing Fossil check-in 8bdc0d485e3ad0c7a1e818da66f106951d496b05cbe61d12c2c448f2f24b6d5d (Git mirror 169f68ed88b34cb68f720191c64c058f2ccec508, 2026-03-11) and later snapshots/builds allows an attacker to cause a denial of service via the ext/misc/sqlar.c, sqlarUncompressFunc(), sqlar_uncompress(), sqlite3_value_int64(), sqlite3_malloc(int), uncompress() components",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-08-25 21:17:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-39113",
                                "url": "https://ubuntu.com/security/CVE-2026-39113",
                                "cve_description": "Buffer Overflow vulnerability in SQLite affected version source snapshots/builds containing Fossil check-in 8bdc0d485e3ad0c7a1e818da66f106951d496b05cbe61d12c2c448f2f24b6d5d (Git mirror 169f68ed88b34cb68f720191c64c058f2ccec508, 2026-03-11) and later snapshots/builds allows an attacker to cause a denial of service via the ext/misc/sqlar.c, sqlarUncompressFunc(), sqlar_uncompress(), sqlite3_value_int64(), sqlite3_malloc(int), uncompress() components",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-08-25 21:17:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: buffer overflow via integer truncation in sqlar extension",
                            "    - debian/patches/CVE-2026-39113.patch: change sqlite3_value_int() to",
                            "      sqlite3_value_int64() in sqlarUncompressFunc() in ext/misc/sqlar.c to",
                            "      prevent 32-bit truncation of the decompressed size, which caused an",
                            "      undersized buffer allocation and heap buffer overflow via uncompress().",
                            "    - CVE-2026-39113",
                            ""
                        ],
                        "package": "sqlite3",
                        "version": "3.37.2-2ubuntu0.8",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Leonidas Da Silva Barbosa <leo.barbosa@canonical.com>",
                        "date": "Thu, 03 Sep 2026 11:45:28 -0300"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "netplan-generator",
                "from_version": {
                    "source_package_name": "netplan.io",
                    "source_package_version": "0.107.1-3ubuntu0.22.04.4",
                    "version": "0.107.1-3ubuntu0.22.04.4"
                },
                "to_version": {
                    "source_package_name": "netplan.io",
                    "source_package_version": "0.107.1-3ubuntu0.22.04.5",
                    "version": "0.107.1-3ubuntu0.22.04.5"
                },
                "cves": [],
                "launchpad_bugs_fixed": [
                    2104373
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * d/p/lp2104373-return-exit-code-1-on-error.patch: return exit code 1 when",
                            "    netplan exits on error (LP: #2104373)",
                            ""
                        ],
                        "package": "netplan.io",
                        "version": "0.107.1-3ubuntu0.22.04.5",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2104373
                        ],
                        "author": "Guilherme Puida Moreira <guilherme.moreira@canonical.com>",
                        "date": "Mon, 31 Aug 2026 09:05:38 -0300"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "netplan.io",
                "from_version": {
                    "source_package_name": "netplan.io",
                    "source_package_version": "0.107.1-3ubuntu0.22.04.4",
                    "version": "0.107.1-3ubuntu0.22.04.4"
                },
                "to_version": {
                    "source_package_name": "netplan.io",
                    "source_package_version": "0.107.1-3ubuntu0.22.04.5",
                    "version": "0.107.1-3ubuntu0.22.04.5"
                },
                "cves": [],
                "launchpad_bugs_fixed": [
                    2104373
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * d/p/lp2104373-return-exit-code-1-on-error.patch: return exit code 1 when",
                            "    netplan exits on error (LP: #2104373)",
                            ""
                        ],
                        "package": "netplan.io",
                        "version": "0.107.1-3ubuntu0.22.04.5",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2104373
                        ],
                        "author": "Guilherme Puida Moreira <guilherme.moreira@canonical.com>",
                        "date": "Mon, 31 Aug 2026 09:05:38 -0300"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "perl",
                "from_version": {
                    "source_package_name": "perl",
                    "source_package_version": "5.34.0-3ubuntu1.8",
                    "version": "5.34.0-3ubuntu1.8"
                },
                "to_version": {
                    "source_package_name": "perl",
                    "source_package_version": "5.34.0-3ubuntu1.9",
                    "version": "5.34.0-3ubuntu1.9"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-15534",
                        "url": "https://ubuntu.com/security/CVE-2026-15534",
                        "cve_description": "Perl versions through 5.45.1 have out-of-bounds heap reads and writes during regular expression matching via an undersized superlinear cache in S_regmatch.  The regex engine's superlinear cache holds one bit per subject position for each participating WHILEM node, so the bit count is the subject length plus one times the number of nodes. Nothing checks that product for positive overflow of the signed 32-bit count: a 286331153 byte subject matched against a pattern with 15 participating nodes stores the count as 14, leaving a two byte cache. The cache is then indexed from the real match position and node number, so reads go past the end of the allocation, and on failure CACHEsayNO sets a bit past it.  A caller that matches an attacker controlled subject of this size against a pattern of this shape can crash the process or corrupt heap memory.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-08-09 18:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-19487",
                        "url": "https://ubuntu.com/security/CVE-2026-19487",
                        "cve_description": "Perl versions from 5.9.4 before 5.41.9 produce incorrect regular expression match results when a stale failure flag ends the Aho-Corasick prescan early in S_find_byclass.  The prescan walks the subject for positions where the full pattern could match, and the engine tries it from the leftmost one recorded. A failing transition sets the failed flag, and a later successful transition does not clear it, so the prescan reads the stale flag as a failure and stops before it can record a candidate that starts earlier. It takes a subject where one candidate is recorded and a later character then forces a fallback through a fail link that succeeds.  Example:    \"ABCDE\" =~ m/ABCF|BCDE|C/;    # matches C at offset 2, not BCDE   \"ABCDE\" =~ m/ABCF|BCDE|C(G)/; # no match, BCDE missed  An alternation like this can miss input it should match, or match it on the wrong branch, so an access or filtering decision made from the result can be wrong.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-08-13 16:17:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-15534",
                                "url": "https://ubuntu.com/security/CVE-2026-15534",
                                "cve_description": "Perl versions through 5.45.1 have out-of-bounds heap reads and writes during regular expression matching via an undersized superlinear cache in S_regmatch.  The regex engine's superlinear cache holds one bit per subject position for each participating WHILEM node, so the bit count is the subject length plus one times the number of nodes. Nothing checks that product for positive overflow of the signed 32-bit count: a 286331153 byte subject matched against a pattern with 15 participating nodes stores the count as 14, leaving a two byte cache. The cache is then indexed from the real match position and node number, so reads go past the end of the allocation, and on failure CACHEsayNO sets a bit past it.  A caller that matches an attacker controlled subject of this size against a pattern of this shape can crash the process or corrupt heap memory.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-08-09 18:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-19487",
                                "url": "https://ubuntu.com/security/CVE-2026-19487",
                                "cve_description": "Perl versions from 5.9.4 before 5.41.9 produce incorrect regular expression match results when a stale failure flag ends the Aho-Corasick prescan early in S_find_byclass.  The prescan walks the subject for positions where the full pattern could match, and the engine tries it from the leftmost one recorded. A failing transition sets the failed flag, and a later successful transition does not clear it, so the prescan reads the stale flag as a failure and stops before it can record a candidate that starts earlier. It takes a subject where one candidate is recorded and a later character then forces a fallback through a fail link that succeeds.  Example:    \"ABCDE\" =~ m/ABCF|BCDE|C/;    # matches C at offset 2, not BCDE   \"ABCDE\" =~ m/ABCF|BCDE|C(G)/; # no match, BCDE missed  An alternation like this can miss input it should match, or match it on the wrong branch, so an access or filtering decision made from the result can be wrong.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-08-13 16:17:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Out-of-bounds heap read and write during regular",
                            "    expression matching",
                            "    - debian/patches/CVE-2026-15534_1.patch: Make super-linear cache",
                            "      countdown unsigned in regexec.c.",
                            "    - debian/patches/CVE-2026-15534_2.patch: Make superlinear cache 64-bit",
                            "      clean in regexec.c, regexp.h.",
                            "    - CVE-2026-15534",
                            "  * SECURITY UPDATE: Incorrect regular expression matches from stale",
                            "    Aho-Corasick failure flag",
                            "    - debian/patches/CVE-2026-19487.patch: Reset stale failure flag in",
                            "      Aho-Corasick prescan in regexec.c, t/re/re_tests.",
                            "    - CVE-2026-19487",
                            ""
                        ],
                        "package": "perl",
                        "version": "5.34.0-3ubuntu1.9",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Shafayat Hossain Majumder <shafayat.majumder@canonical.com>",
                        "date": "Thu, 03 Sep 2026 10:50:03 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "perl-base",
                "from_version": {
                    "source_package_name": "perl",
                    "source_package_version": "5.34.0-3ubuntu1.8",
                    "version": "5.34.0-3ubuntu1.8"
                },
                "to_version": {
                    "source_package_name": "perl",
                    "source_package_version": "5.34.0-3ubuntu1.9",
                    "version": "5.34.0-3ubuntu1.9"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-15534",
                        "url": "https://ubuntu.com/security/CVE-2026-15534",
                        "cve_description": "Perl versions through 5.45.1 have out-of-bounds heap reads and writes during regular expression matching via an undersized superlinear cache in S_regmatch.  The regex engine's superlinear cache holds one bit per subject position for each participating WHILEM node, so the bit count is the subject length plus one times the number of nodes. Nothing checks that product for positive overflow of the signed 32-bit count: a 286331153 byte subject matched against a pattern with 15 participating nodes stores the count as 14, leaving a two byte cache. The cache is then indexed from the real match position and node number, so reads go past the end of the allocation, and on failure CACHEsayNO sets a bit past it.  A caller that matches an attacker controlled subject of this size against a pattern of this shape can crash the process or corrupt heap memory.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-08-09 18:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-19487",
                        "url": "https://ubuntu.com/security/CVE-2026-19487",
                        "cve_description": "Perl versions from 5.9.4 before 5.41.9 produce incorrect regular expression match results when a stale failure flag ends the Aho-Corasick prescan early in S_find_byclass.  The prescan walks the subject for positions where the full pattern could match, and the engine tries it from the leftmost one recorded. A failing transition sets the failed flag, and a later successful transition does not clear it, so the prescan reads the stale flag as a failure and stops before it can record a candidate that starts earlier. It takes a subject where one candidate is recorded and a later character then forces a fallback through a fail link that succeeds.  Example:    \"ABCDE\" =~ m/ABCF|BCDE|C/;    # matches C at offset 2, not BCDE   \"ABCDE\" =~ m/ABCF|BCDE|C(G)/; # no match, BCDE missed  An alternation like this can miss input it should match, or match it on the wrong branch, so an access or filtering decision made from the result can be wrong.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-08-13 16:17:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-15534",
                                "url": "https://ubuntu.com/security/CVE-2026-15534",
                                "cve_description": "Perl versions through 5.45.1 have out-of-bounds heap reads and writes during regular expression matching via an undersized superlinear cache in S_regmatch.  The regex engine's superlinear cache holds one bit per subject position for each participating WHILEM node, so the bit count is the subject length plus one times the number of nodes. Nothing checks that product for positive overflow of the signed 32-bit count: a 286331153 byte subject matched against a pattern with 15 participating nodes stores the count as 14, leaving a two byte cache. The cache is then indexed from the real match position and node number, so reads go past the end of the allocation, and on failure CACHEsayNO sets a bit past it.  A caller that matches an attacker controlled subject of this size against a pattern of this shape can crash the process or corrupt heap memory.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-08-09 18:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-19487",
                                "url": "https://ubuntu.com/security/CVE-2026-19487",
                                "cve_description": "Perl versions from 5.9.4 before 5.41.9 produce incorrect regular expression match results when a stale failure flag ends the Aho-Corasick prescan early in S_find_byclass.  The prescan walks the subject for positions where the full pattern could match, and the engine tries it from the leftmost one recorded. A failing transition sets the failed flag, and a later successful transition does not clear it, so the prescan reads the stale flag as a failure and stops before it can record a candidate that starts earlier. It takes a subject where one candidate is recorded and a later character then forces a fallback through a fail link that succeeds.  Example:    \"ABCDE\" =~ m/ABCF|BCDE|C/;    # matches C at offset 2, not BCDE   \"ABCDE\" =~ m/ABCF|BCDE|C(G)/; # no match, BCDE missed  An alternation like this can miss input it should match, or match it on the wrong branch, so an access or filtering decision made from the result can be wrong.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-08-13 16:17:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Out-of-bounds heap read and write during regular",
                            "    expression matching",
                            "    - debian/patches/CVE-2026-15534_1.patch: Make super-linear cache",
                            "      countdown unsigned in regexec.c.",
                            "    - debian/patches/CVE-2026-15534_2.patch: Make superlinear cache 64-bit",
                            "      clean in regexec.c, regexp.h.",
                            "    - CVE-2026-15534",
                            "  * SECURITY UPDATE: Incorrect regular expression matches from stale",
                            "    Aho-Corasick failure flag",
                            "    - debian/patches/CVE-2026-19487.patch: Reset stale failure flag in",
                            "      Aho-Corasick prescan in regexec.c, t/re/re_tests.",
                            "    - CVE-2026-19487",
                            ""
                        ],
                        "package": "perl",
                        "version": "5.34.0-3ubuntu1.9",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Shafayat Hossain Majumder <shafayat.majumder@canonical.com>",
                        "date": "Thu, 03 Sep 2026 10:50:03 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "perl-modules-5.34",
                "from_version": {
                    "source_package_name": "perl",
                    "source_package_version": "5.34.0-3ubuntu1.8",
                    "version": "5.34.0-3ubuntu1.8"
                },
                "to_version": {
                    "source_package_name": "perl",
                    "source_package_version": "5.34.0-3ubuntu1.9",
                    "version": "5.34.0-3ubuntu1.9"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-15534",
                        "url": "https://ubuntu.com/security/CVE-2026-15534",
                        "cve_description": "Perl versions through 5.45.1 have out-of-bounds heap reads and writes during regular expression matching via an undersized superlinear cache in S_regmatch.  The regex engine's superlinear cache holds one bit per subject position for each participating WHILEM node, so the bit count is the subject length plus one times the number of nodes. Nothing checks that product for positive overflow of the signed 32-bit count: a 286331153 byte subject matched against a pattern with 15 participating nodes stores the count as 14, leaving a two byte cache. The cache is then indexed from the real match position and node number, so reads go past the end of the allocation, and on failure CACHEsayNO sets a bit past it.  A caller that matches an attacker controlled subject of this size against a pattern of this shape can crash the process or corrupt heap memory.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-08-09 18:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-19487",
                        "url": "https://ubuntu.com/security/CVE-2026-19487",
                        "cve_description": "Perl versions from 5.9.4 before 5.41.9 produce incorrect regular expression match results when a stale failure flag ends the Aho-Corasick prescan early in S_find_byclass.  The prescan walks the subject for positions where the full pattern could match, and the engine tries it from the leftmost one recorded. A failing transition sets the failed flag, and a later successful transition does not clear it, so the prescan reads the stale flag as a failure and stops before it can record a candidate that starts earlier. It takes a subject where one candidate is recorded and a later character then forces a fallback through a fail link that succeeds.  Example:    \"ABCDE\" =~ m/ABCF|BCDE|C/;    # matches C at offset 2, not BCDE   \"ABCDE\" =~ m/ABCF|BCDE|C(G)/; # no match, BCDE missed  An alternation like this can miss input it should match, or match it on the wrong branch, so an access or filtering decision made from the result can be wrong.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-08-13 16:17:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-15534",
                                "url": "https://ubuntu.com/security/CVE-2026-15534",
                                "cve_description": "Perl versions through 5.45.1 have out-of-bounds heap reads and writes during regular expression matching via an undersized superlinear cache in S_regmatch.  The regex engine's superlinear cache holds one bit per subject position for each participating WHILEM node, so the bit count is the subject length plus one times the number of nodes. Nothing checks that product for positive overflow of the signed 32-bit count: a 286331153 byte subject matched against a pattern with 15 participating nodes stores the count as 14, leaving a two byte cache. The cache is then indexed from the real match position and node number, so reads go past the end of the allocation, and on failure CACHEsayNO sets a bit past it.  A caller that matches an attacker controlled subject of this size against a pattern of this shape can crash the process or corrupt heap memory.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-08-09 18:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-19487",
                                "url": "https://ubuntu.com/security/CVE-2026-19487",
                                "cve_description": "Perl versions from 5.9.4 before 5.41.9 produce incorrect regular expression match results when a stale failure flag ends the Aho-Corasick prescan early in S_find_byclass.  The prescan walks the subject for positions where the full pattern could match, and the engine tries it from the leftmost one recorded. A failing transition sets the failed flag, and a later successful transition does not clear it, so the prescan reads the stale flag as a failure and stops before it can record a candidate that starts earlier. It takes a subject where one candidate is recorded and a later character then forces a fallback through a fail link that succeeds.  Example:    \"ABCDE\" =~ m/ABCF|BCDE|C/;    # matches C at offset 2, not BCDE   \"ABCDE\" =~ m/ABCF|BCDE|C(G)/; # no match, BCDE missed  An alternation like this can miss input it should match, or match it on the wrong branch, so an access or filtering decision made from the result can be wrong.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-08-13 16:17:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Out-of-bounds heap read and write during regular",
                            "    expression matching",
                            "    - debian/patches/CVE-2026-15534_1.patch: Make super-linear cache",
                            "      countdown unsigned in regexec.c.",
                            "    - debian/patches/CVE-2026-15534_2.patch: Make superlinear cache 64-bit",
                            "      clean in regexec.c, regexp.h.",
                            "    - CVE-2026-15534",
                            "  * SECURITY UPDATE: Incorrect regular expression matches from stale",
                            "    Aho-Corasick failure flag",
                            "    - debian/patches/CVE-2026-19487.patch: Reset stale failure flag in",
                            "      Aho-Corasick prescan in regexec.c, t/re/re_tests.",
                            "    - CVE-2026-19487",
                            ""
                        ],
                        "package": "perl",
                        "version": "5.34.0-3ubuntu1.9",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Shafayat Hossain Majumder <shafayat.majumder@canonical.com>",
                        "date": "Thu, 03 Sep 2026 10:50:03 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "pkexec",
                "from_version": {
                    "source_package_name": "policykit-1",
                    "source_package_version": "0.105-33ubuntu0.1",
                    "version": "0.105-33ubuntu0.1"
                },
                "to_version": {
                    "source_package_name": "policykit-1",
                    "source_package_version": "0.105-33ubuntu0.2",
                    "version": "0.105-33ubuntu0.2"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-85498",
                        "url": "https://ubuntu.com/security/CVE-2026-85498",
                        "cve_description": "[Regression in CVE-2026-4897 fix (polkit read_cookie()) - stack buffer underflow]",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-09-07"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-85498",
                                "url": "https://ubuntu.com/security/CVE-2026-85498",
                                "cve_description": "[Regression in CVE-2026-4897 fix (polkit read_cookie()) - stack buffer underflow]",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-09-07"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: stack underflow in cookie input",
                            "    - debian/patches/CVE-2026-85498.patch: Unsanitized underflow in cookie",
                            "      input in src/polkitagent/polkitagenthelperprivate.c.",
                            "    - CVE-2026-85498",
                            ""
                        ],
                        "package": "policykit-1",
                        "version": "0.105-33ubuntu0.2",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Fri, 11 Sep 2026 13:53:13 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "polkitd",
                "from_version": {
                    "source_package_name": "policykit-1",
                    "source_package_version": "0.105-33ubuntu0.1",
                    "version": "0.105-33ubuntu0.1"
                },
                "to_version": {
                    "source_package_name": "policykit-1",
                    "source_package_version": "0.105-33ubuntu0.2",
                    "version": "0.105-33ubuntu0.2"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-85498",
                        "url": "https://ubuntu.com/security/CVE-2026-85498",
                        "cve_description": "[Regression in CVE-2026-4897 fix (polkit read_cookie()) - stack buffer underflow]",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-09-07"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-85498",
                                "url": "https://ubuntu.com/security/CVE-2026-85498",
                                "cve_description": "[Regression in CVE-2026-4897 fix (polkit read_cookie()) - stack buffer underflow]",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-09-07"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: stack underflow in cookie input",
                            "    - debian/patches/CVE-2026-85498.patch: Unsanitized underflow in cookie",
                            "      input in src/polkitagent/polkitagenthelperprivate.c.",
                            "    - CVE-2026-85498",
                            ""
                        ],
                        "package": "policykit-1",
                        "version": "0.105-33ubuntu0.2",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Fri, 11 Sep 2026 13:53:13 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "python3-netplan",
                "from_version": {
                    "source_package_name": "netplan.io",
                    "source_package_version": "0.107.1-3ubuntu0.22.04.4",
                    "version": "0.107.1-3ubuntu0.22.04.4"
                },
                "to_version": {
                    "source_package_name": "netplan.io",
                    "source_package_version": "0.107.1-3ubuntu0.22.04.5",
                    "version": "0.107.1-3ubuntu0.22.04.5"
                },
                "cves": [],
                "launchpad_bugs_fixed": [
                    2104373
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * d/p/lp2104373-return-exit-code-1-on-error.patch: return exit code 1 when",
                            "    netplan exits on error (LP: #2104373)",
                            ""
                        ],
                        "package": "netplan.io",
                        "version": "0.107.1-3ubuntu0.22.04.5",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2104373
                        ],
                        "author": "Guilherme Puida Moreira <guilherme.moreira@canonical.com>",
                        "date": "Mon, 31 Aug 2026 09:05:38 -0300"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "python3.10",
                "from_version": {
                    "source_package_name": "python3.10",
                    "source_package_version": "3.10.12-1~22.04.17",
                    "version": "3.10.12-1~22.04.17"
                },
                "to_version": {
                    "source_package_name": "python3.10",
                    "source_package_version": "3.10.12-1~22.04.18",
                    "version": "3.10.12-1~22.04.18"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-4360",
                        "url": "https://ubuntu.com/security/CVE-2026-4360",
                        "cve_description": "In the Tarfile.extract() function, the filter parameter is not passed properly when extracting hardlinks. An affected system that extracts content from untrusted tar files could end up writing files with an unexpected uid/gid despite the user passing filter='data' to the extract() function.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-06-30 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-15308",
                        "url": "https://ubuntu.com/security/CVE-2026-15308",
                        "cve_description": "The incremental HTML parser (html.parser.HTMLParser) allows for CPU denial-of-service through repeated unterminated markup declarations when processing uncontrolled data.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-07-09 17:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-4360",
                                "url": "https://ubuntu.com/security/CVE-2026-4360",
                                "cve_description": "In the Tarfile.extract() function, the filter parameter is not passed properly when extracting hardlinks. An affected system that extracts content from untrusted tar files could end up writing files with an unexpected uid/gid despite the user passing filter='data' to the extract() function.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-06-30 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-15308",
                                "url": "https://ubuntu.com/security/CVE-2026-15308",
                                "cve_description": "The incremental HTML parser (html.parser.HTMLParser) allows for CPU denial-of-service through repeated unterminated markup declarations when processing uncontrolled data.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-07-09 17:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Incomplete filter application in tarfile extraction",
                            "    - debian/patches/CVE-2026-4360.patch: pass the filter function through",
                            "      extract() to target extraction in Lib/tarfile.py,",
                            "      Lib/test/test_tarfile.py.",
                            "    - CVE-2026-4360",
                            "  * SECURITY UPDATE: Quadratic complexity in incremental HTML parsing",
                            "    - debian/patches/CVE-2026-15308.patch: fix quadratic complexity in",
                            "      incremental parsing in HTMLParser in Lib/html/parser.py,",
                            "      Lib/test/test_htmlparser.py.",
                            "    - CVE-2026-15308",
                            ""
                        ],
                        "package": "python3.10",
                        "version": "3.10.12-1~22.04.18",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Allen Huang <allen.huang@canonical.com>",
                        "date": "Mon, 31 Aug 2026 11:18:17 +0100"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "python3.10-minimal",
                "from_version": {
                    "source_package_name": "python3.10",
                    "source_package_version": "3.10.12-1~22.04.17",
                    "version": "3.10.12-1~22.04.17"
                },
                "to_version": {
                    "source_package_name": "python3.10",
                    "source_package_version": "3.10.12-1~22.04.18",
                    "version": "3.10.12-1~22.04.18"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-4360",
                        "url": "https://ubuntu.com/security/CVE-2026-4360",
                        "cve_description": "In the Tarfile.extract() function, the filter parameter is not passed properly when extracting hardlinks. An affected system that extracts content from untrusted tar files could end up writing files with an unexpected uid/gid despite the user passing filter='data' to the extract() function.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-06-30 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-15308",
                        "url": "https://ubuntu.com/security/CVE-2026-15308",
                        "cve_description": "The incremental HTML parser (html.parser.HTMLParser) allows for CPU denial-of-service through repeated unterminated markup declarations when processing uncontrolled data.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-07-09 17:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-4360",
                                "url": "https://ubuntu.com/security/CVE-2026-4360",
                                "cve_description": "In the Tarfile.extract() function, the filter parameter is not passed properly when extracting hardlinks. An affected system that extracts content from untrusted tar files could end up writing files with an unexpected uid/gid despite the user passing filter='data' to the extract() function.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-06-30 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-15308",
                                "url": "https://ubuntu.com/security/CVE-2026-15308",
                                "cve_description": "The incremental HTML parser (html.parser.HTMLParser) allows for CPU denial-of-service through repeated unterminated markup declarations when processing uncontrolled data.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-07-09 17:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Incomplete filter application in tarfile extraction",
                            "    - debian/patches/CVE-2026-4360.patch: pass the filter function through",
                            "      extract() to target extraction in Lib/tarfile.py,",
                            "      Lib/test/test_tarfile.py.",
                            "    - CVE-2026-4360",
                            "  * SECURITY UPDATE: Quadratic complexity in incremental HTML parsing",
                            "    - debian/patches/CVE-2026-15308.patch: fix quadratic complexity in",
                            "      incremental parsing in HTMLParser in Lib/html/parser.py,",
                            "      Lib/test/test_htmlparser.py.",
                            "    - CVE-2026-15308",
                            ""
                        ],
                        "package": "python3.10",
                        "version": "3.10.12-1~22.04.18",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Allen Huang <allen.huang@canonical.com>",
                        "date": "Mon, 31 Aug 2026 11:18:17 +0100"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            }
        ],
        "snap": []
    },
    "added": {
        "deb": [],
        "snap": []
    },
    "removed": {
        "deb": [],
        "snap": []
    },
    "notes": "Changelog diff for Ubuntu 22.04 jammy image from release image serial 20260904 to 20260916",
    "from_series": "jammy",
    "to_series": "jammy",
    "from_serial": "20260904",
    "to_serial": "20260916",
    "from_manifest_filename": "release_manifest.previous",
    "to_manifest_filename": "manifest.current"
}