{
    "summary": {
        "snap": {
            "added": [],
            "removed": [],
            "diff": []
        },
        "deb": {
            "added": [],
            "removed": [],
            "diff": [
                "curl",
                "dmidecode",
                "libc-bin",
                "libc-gconv-modules-extra",
                "libc6",
                "libcurl4t64",
                "libnetplan1",
                "libpython3.14-minimal",
                "libpython3.14-stdlib",
                "libsqlite3-0",
                "netplan-generator",
                "netplan.io",
                "perl-base",
                "python3-cryptography",
                "python3-netplan",
                "python3.14",
                "python3.14-minimal",
                "wireless-regdb"
            ]
        }
    },
    "diff": {
        "deb": [
            {
                "name": "curl",
                "from_version": {
                    "source_package_name": "curl",
                    "source_package_version": "8.18.0-1ubuntu2.4",
                    "version": "8.18.0-1ubuntu2.4"
                },
                "to_version": {
                    "source_package_name": "curl",
                    "source_package_version": "8.18.0-1ubuntu2.5",
                    "version": "8.18.0-1ubuntu2.5"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-8932",
                        "url": "https://ubuntu.com/security/CVE-2026-8932",
                        "cve_description": "libcurl would reuse a previously created connection even when some mTLS config related option had been changed that should have prohibited reuse.  libcurl keeps previously used connections in a connection pool for subsequent transfers to reuse if one of them matches the setup. However, some TLS settings related to client certificates were left out from the configuration match checks, making them match too easily. In particular options related to the private key.",
                        "cve_priority": "low",
                        "cve_public_date": "2026-07-03 07:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-8932",
                                "url": "https://ubuntu.com/security/CVE-2026-8932",
                                "cve_description": "libcurl would reuse a previously created connection even when some mTLS config related option had been changed that should have prohibited reuse.  libcurl keeps previously used connections in a connection pool for subsequent transfers to reuse if one of them matches the setup. However, some TLS settings related to client certificates were left out from the configuration match checks, making them match too easily. In particular options related to the private key.",
                                "cve_priority": "low",
                                "cve_public_date": "2026-07-03 07:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Authentication Bypass in connection reuse.",
                            "    - debian/patches/CVE-2026-8932.patch: Fix incomplete mTLS config in",
                            "      lib/ldap.c, ../urldata.h, lib/vssh/libssh.c, ../libssh2.c,",
                            "      lib/vtls/gtls.c, ../mbedtls.c, ../openssl.c, ../rustls.c,",
                            "      ../schannel.c, ../vtls.c, ../vtls_scache.c, ../vtls_scache.h,",
                            "      and ../wolfssl.c.",
                            "    - CVE-2026-8932",
                            ""
                        ],
                        "package": "curl",
                        "version": "8.18.0-1ubuntu2.5",
                        "urgency": "medium",
                        "distributions": "resolute-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Kyle Kernick <kyle.kernick@canonical.com>",
                        "date": "Fri, 21 Aug 2026 12:55:56 -0600"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "dmidecode",
                "from_version": {
                    "source_package_name": "dmidecode",
                    "source_package_version": "3.6-2build1",
                    "version": "3.6-2build1"
                },
                "to_version": {
                    "source_package_name": "dmidecode",
                    "source_package_version": "3.6-2ubuntu1",
                    "version": "3.6-2ubuntu1"
                },
                "cves": [],
                "launchpad_bugs_fixed": [
                    2148318
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Display slot ID for more slot types and EDSFF (LP: #2148318)",
                            "    - d/p/lp-2148318-1-dmidecode-Display-slot-information-for-EDSFF.patch",
                            "    - d/p/lp-2148318-2-dmidecode-Display-the-slot-ID-for-more-slot-types.patch",
                            ""
                        ],
                        "package": "dmidecode",
                        "version": "3.6-2ubuntu1",
                        "urgency": "medium",
                        "distributions": "resolute",
                        "launchpad_bugs_fixed": [
                            2148318
                        ],
                        "author": "Mitchell Augustin <mitchell.augustin@canonical.com>",
                        "date": "Thu, 02 Jul 2026 11:51:52 -0500"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libc-bin",
                "from_version": {
                    "source_package_name": "glibc",
                    "source_package_version": "2.43-2ubuntu2.3",
                    "version": "2.43-2ubuntu2.3"
                },
                "to_version": {
                    "source_package_name": "glibc",
                    "source_package_version": "2.43-2ubuntu2.4",
                    "version": "2.43-2ubuntu2.4"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-19499",
                        "url": "https://ubuntu.com/security/CVE-2026-19499",
                        "cve_description": "Calling strfmon and strfmon_l in the GNU C Library version 2.38 to 2.44 can write past the end of the caller-supplied output buffer when a conversion uses right-justified width padding.  Exploitation requires an application code path that calls strfmon or strfmon_l with right-justified width padding into a destination buffer that is large enough for the padding to succeed but too small for the internal memmove call. The field width or format may be attacker-influenced or a fixed susceptible pattern in the caller.  At the time of publication, no network-facing application impact is known.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-09-14 18:17:00 UTC"
                    },
                    {
                        "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-19499",
                                "url": "https://ubuntu.com/security/CVE-2026-19499",
                                "cve_description": "Calling strfmon and strfmon_l in the GNU C Library version 2.38 to 2.44 can write past the end of the caller-supplied output buffer when a conversion uses right-justified width padding.  Exploitation requires an application code path that calls strfmon or strfmon_l with right-justified width padding into a destination buffer that is large enough for the padding to succeed but too small for the internal memmove call. The field width or format may be attacker-influenced or a fixed susceptible pattern in the caller.  At the time of publication, no network-facing application impact is known.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-09-14 18:17:00 UTC"
                            },
                            {
                                "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: Buffer overflow in strfmon right-justification padding",
                            "    - debian/patches/CVE-2026-19499.patch: stdlib: Fix right-justification in",
                            "      strfmon (bug 34510, CVE-2026-19499) in stdlib/Makefile,",
                            "      stdlib/strfmon_l.c, stdlib/tst-strfmon-bug34510.c.",
                            "    - CVE-2026-19499",
                            "  * 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.43-2ubuntu2.4",
                        "urgency": "medium",
                        "distributions": "resolute-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Thu, 03 Sep 2026 10:09:39 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libc-gconv-modules-extra",
                "from_version": {
                    "source_package_name": "glibc",
                    "source_package_version": "2.43-2ubuntu2.3",
                    "version": "2.43-2ubuntu2.3"
                },
                "to_version": {
                    "source_package_name": "glibc",
                    "source_package_version": "2.43-2ubuntu2.4",
                    "version": "2.43-2ubuntu2.4"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-19499",
                        "url": "https://ubuntu.com/security/CVE-2026-19499",
                        "cve_description": "Calling strfmon and strfmon_l in the GNU C Library version 2.38 to 2.44 can write past the end of the caller-supplied output buffer when a conversion uses right-justified width padding.  Exploitation requires an application code path that calls strfmon or strfmon_l with right-justified width padding into a destination buffer that is large enough for the padding to succeed but too small for the internal memmove call. The field width or format may be attacker-influenced or a fixed susceptible pattern in the caller.  At the time of publication, no network-facing application impact is known.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-09-14 18:17:00 UTC"
                    },
                    {
                        "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-19499",
                                "url": "https://ubuntu.com/security/CVE-2026-19499",
                                "cve_description": "Calling strfmon and strfmon_l in the GNU C Library version 2.38 to 2.44 can write past the end of the caller-supplied output buffer when a conversion uses right-justified width padding.  Exploitation requires an application code path that calls strfmon or strfmon_l with right-justified width padding into a destination buffer that is large enough for the padding to succeed but too small for the internal memmove call. The field width or format may be attacker-influenced or a fixed susceptible pattern in the caller.  At the time of publication, no network-facing application impact is known.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-09-14 18:17:00 UTC"
                            },
                            {
                                "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: Buffer overflow in strfmon right-justification padding",
                            "    - debian/patches/CVE-2026-19499.patch: stdlib: Fix right-justification in",
                            "      strfmon (bug 34510, CVE-2026-19499) in stdlib/Makefile,",
                            "      stdlib/strfmon_l.c, stdlib/tst-strfmon-bug34510.c.",
                            "    - CVE-2026-19499",
                            "  * 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.43-2ubuntu2.4",
                        "urgency": "medium",
                        "distributions": "resolute-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Thu, 03 Sep 2026 10:09:39 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libc6",
                "from_version": {
                    "source_package_name": "glibc",
                    "source_package_version": "2.43-2ubuntu2.3",
                    "version": "2.43-2ubuntu2.3"
                },
                "to_version": {
                    "source_package_name": "glibc",
                    "source_package_version": "2.43-2ubuntu2.4",
                    "version": "2.43-2ubuntu2.4"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-19499",
                        "url": "https://ubuntu.com/security/CVE-2026-19499",
                        "cve_description": "Calling strfmon and strfmon_l in the GNU C Library version 2.38 to 2.44 can write past the end of the caller-supplied output buffer when a conversion uses right-justified width padding.  Exploitation requires an application code path that calls strfmon or strfmon_l with right-justified width padding into a destination buffer that is large enough for the padding to succeed but too small for the internal memmove call. The field width or format may be attacker-influenced or a fixed susceptible pattern in the caller.  At the time of publication, no network-facing application impact is known.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-09-14 18:17:00 UTC"
                    },
                    {
                        "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-19499",
                                "url": "https://ubuntu.com/security/CVE-2026-19499",
                                "cve_description": "Calling strfmon and strfmon_l in the GNU C Library version 2.38 to 2.44 can write past the end of the caller-supplied output buffer when a conversion uses right-justified width padding.  Exploitation requires an application code path that calls strfmon or strfmon_l with right-justified width padding into a destination buffer that is large enough for the padding to succeed but too small for the internal memmove call. The field width or format may be attacker-influenced or a fixed susceptible pattern in the caller.  At the time of publication, no network-facing application impact is known.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-09-14 18:17:00 UTC"
                            },
                            {
                                "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: Buffer overflow in strfmon right-justification padding",
                            "    - debian/patches/CVE-2026-19499.patch: stdlib: Fix right-justification in",
                            "      strfmon (bug 34510, CVE-2026-19499) in stdlib/Makefile,",
                            "      stdlib/strfmon_l.c, stdlib/tst-strfmon-bug34510.c.",
                            "    - CVE-2026-19499",
                            "  * 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.43-2ubuntu2.4",
                        "urgency": "medium",
                        "distributions": "resolute-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Thu, 03 Sep 2026 10:09:39 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libcurl4t64",
                "from_version": {
                    "source_package_name": "curl",
                    "source_package_version": "8.18.0-1ubuntu2.4",
                    "version": "8.18.0-1ubuntu2.4"
                },
                "to_version": {
                    "source_package_name": "curl",
                    "source_package_version": "8.18.0-1ubuntu2.5",
                    "version": "8.18.0-1ubuntu2.5"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-8932",
                        "url": "https://ubuntu.com/security/CVE-2026-8932",
                        "cve_description": "libcurl would reuse a previously created connection even when some mTLS config related option had been changed that should have prohibited reuse.  libcurl keeps previously used connections in a connection pool for subsequent transfers to reuse if one of them matches the setup. However, some TLS settings related to client certificates were left out from the configuration match checks, making them match too easily. In particular options related to the private key.",
                        "cve_priority": "low",
                        "cve_public_date": "2026-07-03 07:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-8932",
                                "url": "https://ubuntu.com/security/CVE-2026-8932",
                                "cve_description": "libcurl would reuse a previously created connection even when some mTLS config related option had been changed that should have prohibited reuse.  libcurl keeps previously used connections in a connection pool for subsequent transfers to reuse if one of them matches the setup. However, some TLS settings related to client certificates were left out from the configuration match checks, making them match too easily. In particular options related to the private key.",
                                "cve_priority": "low",
                                "cve_public_date": "2026-07-03 07:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Authentication Bypass in connection reuse.",
                            "    - debian/patches/CVE-2026-8932.patch: Fix incomplete mTLS config in",
                            "      lib/ldap.c, ../urldata.h, lib/vssh/libssh.c, ../libssh2.c,",
                            "      lib/vtls/gtls.c, ../mbedtls.c, ../openssl.c, ../rustls.c,",
                            "      ../schannel.c, ../vtls.c, ../vtls_scache.c, ../vtls_scache.h,",
                            "      and ../wolfssl.c.",
                            "    - CVE-2026-8932",
                            ""
                        ],
                        "package": "curl",
                        "version": "8.18.0-1ubuntu2.5",
                        "urgency": "medium",
                        "distributions": "resolute-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Kyle Kernick <kyle.kernick@canonical.com>",
                        "date": "Fri, 21 Aug 2026 12:55:56 -0600"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libnetplan1",
                "from_version": {
                    "source_package_name": "netplan.io",
                    "source_package_version": "1.2-1ubuntu5",
                    "version": "1.2-1ubuntu5"
                },
                "to_version": {
                    "source_package_name": "netplan.io",
                    "source_package_version": "1.2-1ubuntu5.1",
                    "version": "1.2-1ubuntu5.1"
                },
                "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": "1.2-1ubuntu5.1",
                        "urgency": "medium",
                        "distributions": "resolute",
                        "launchpad_bugs_fixed": [
                            2104373
                        ],
                        "author": "Guilherme Puida Moreira <guilherme.moreira@canonical.com>",
                        "date": "Mon, 31 Aug 2026 09:23:48 -0300"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libpython3.14-minimal",
                "from_version": {
                    "source_package_name": "python3.14",
                    "source_package_version": "3.14.4-1ubuntu0.1",
                    "version": "3.14.4-1ubuntu0.1"
                },
                "to_version": {
                    "source_package_name": "python3.14",
                    "source_package_version": "3.14.4-1ubuntu0.2",
                    "version": "3.14.4-1ubuntu0.2"
                },
                "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.14",
                        "version": "3.14.4-1ubuntu0.2",
                        "urgency": "medium",
                        "distributions": "resolute-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Allen Huang <allen.huang@canonical.com>",
                        "date": "Thu, 20 Aug 2026 11:41:58 +0100"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libpython3.14-stdlib",
                "from_version": {
                    "source_package_name": "python3.14",
                    "source_package_version": "3.14.4-1ubuntu0.1",
                    "version": "3.14.4-1ubuntu0.1"
                },
                "to_version": {
                    "source_package_name": "python3.14",
                    "source_package_version": "3.14.4-1ubuntu0.2",
                    "version": "3.14.4-1ubuntu0.2"
                },
                "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.14",
                        "version": "3.14.4-1ubuntu0.2",
                        "urgency": "medium",
                        "distributions": "resolute-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Allen Huang <allen.huang@canonical.com>",
                        "date": "Thu, 20 Aug 2026 11:41:58 +0100"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libsqlite3-0",
                "from_version": {
                    "source_package_name": "sqlite3",
                    "source_package_version": "3.46.1-9ubuntu0.2",
                    "version": "3.46.1-9ubuntu0.2"
                },
                "to_version": {
                    "source_package_name": "sqlite3",
                    "source_package_version": "3.46.1-9ubuntu0.3",
                    "version": "3.46.1-9ubuntu0.3"
                },
                "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.46.1-9ubuntu0.3",
                        "urgency": "medium",
                        "distributions": "resolute-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Leonidas Da Silva Barbosa <leo.barbosa@canonical.com>",
                        "date": "Thu, 03 Sep 2026 11:45:25 -0300"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "netplan-generator",
                "from_version": {
                    "source_package_name": "netplan.io",
                    "source_package_version": "1.2-1ubuntu5",
                    "version": "1.2-1ubuntu5"
                },
                "to_version": {
                    "source_package_name": "netplan.io",
                    "source_package_version": "1.2-1ubuntu5.1",
                    "version": "1.2-1ubuntu5.1"
                },
                "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": "1.2-1ubuntu5.1",
                        "urgency": "medium",
                        "distributions": "resolute",
                        "launchpad_bugs_fixed": [
                            2104373
                        ],
                        "author": "Guilherme Puida Moreira <guilherme.moreira@canonical.com>",
                        "date": "Mon, 31 Aug 2026 09:23:48 -0300"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "netplan.io",
                "from_version": {
                    "source_package_name": "netplan.io",
                    "source_package_version": "1.2-1ubuntu5",
                    "version": "1.2-1ubuntu5"
                },
                "to_version": {
                    "source_package_name": "netplan.io",
                    "source_package_version": "1.2-1ubuntu5.1",
                    "version": "1.2-1ubuntu5.1"
                },
                "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": "1.2-1ubuntu5.1",
                        "urgency": "medium",
                        "distributions": "resolute",
                        "launchpad_bugs_fixed": [
                            2104373
                        ],
                        "author": "Guilherme Puida Moreira <guilherme.moreira@canonical.com>",
                        "date": "Mon, 31 Aug 2026 09:23:48 -0300"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "perl-base",
                "from_version": {
                    "source_package_name": "perl",
                    "source_package_version": "5.40.1-7ubuntu0.1",
                    "version": "5.40.1-7ubuntu0.1"
                },
                "to_version": {
                    "source_package_name": "perl",
                    "source_package_version": "5.40.1-7ubuntu0.3",
                    "version": "5.40.1-7ubuntu0.3"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-12087",
                        "url": "https://ubuntu.com/security/CVE-2026-12087",
                        "cve_description": "Socket versions before 2.041 for Perl have an out-of-bounds heap read.  In Socket.xs, pack_ip_mreq_source() checks the length of its source argument before the argument is read, so the check tests the byte length carried over from the preceding multiaddr argument instead. Both addresses occupy a 4-byte field, so a valid multiaddr lets a source of any length pass the check, and the source is then copied into the 4-byte imr_sourceaddr field with a fixed-size copy. A source shorter than 4 bytes is not rejected, and the copy reads up to 3 bytes past the end of its buffer.  Calling pack_ip_mreq_source() with a source value shorter than 4 bytes copies adjacent heap memory into the returned packed structure.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-06-15 22:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-13221",
                        "url": "https://ubuntu.com/security/CVE-2026-13221",
                        "cve_description": "Perl versions before 5.40.5-RC1, from 5.41.0 before 5.42.3-RC1, from 5.43.0 before 5.43.10 produce silently incorrect regular expression matches when an alternation of more than 65535 fixed string branches is compiled into a trie in Perl_study_chunk.  When such branches are combined into a trie, the delta between the first branch and the shared tail is stored in a 16-bit field. A branch count above 65535 overflows the field, and the trie's match decision table is truncated with no warning or error.  A pattern of this shape produces false positive matches (matching strings it should not) and false negative matches (failing to match strings it should). When such a pattern gates an access or filtering decision, the result is wrong.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-07-13 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-57432",
                        "url": "https://ubuntu.com/security/CVE-2026-57432",
                        "cve_description": "Perl versions before 5.40.5-RC1, from 5.41.0 before 5.42.3-RC1, from 5.43.0 before 5.43.11 have an integer overflow in S_measure_struct leading to an out-of-bounds heap read in pack and unpack.  S_measure_struct adds each item's size times its repeat count to a running total with no overflow check, so a large repeat count in a pack or unpack template wraps the signed SSize_t total negative. The @, X, and x position codes then guard their moves with a signed length comparison that passes when the length is negative, advancing the buffer pointer out of bounds.  A template derived from untrusted input can read heap memory past the buffer and return it to the caller.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-07-13 17:17:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-57433",
                        "url": "https://ubuntu.com/security/CVE-2026-57433",
                        "cve_description": "Storable versions before 3.41 for Perl have a signed integer overflow when deserializing a crafted SX_HOOK record.  retrieve_hook_common reads a signed 32-bit item count from an SX_HOOK record and calls av_extend with that count plus one. A count of I32_MAX wraps the addition to a negative value.  A crafted blob passed to thaw or retrieve triggers the overflow; av_extend receives the negative count and dies with a panic, terminating the deserialization.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-07-13 17:17:00 UTC"
                    },
                    {
                        "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-12087",
                                "url": "https://ubuntu.com/security/CVE-2026-12087",
                                "cve_description": "Socket versions before 2.041 for Perl have an out-of-bounds heap read.  In Socket.xs, pack_ip_mreq_source() checks the length of its source argument before the argument is read, so the check tests the byte length carried over from the preceding multiaddr argument instead. Both addresses occupy a 4-byte field, so a valid multiaddr lets a source of any length pass the check, and the source is then copied into the 4-byte imr_sourceaddr field with a fixed-size copy. A source shorter than 4 bytes is not rejected, and the copy reads up to 3 bytes past the end of its buffer.  Calling pack_ip_mreq_source() with a source value shorter than 4 bytes copies adjacent heap memory into the returned packed structure.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-06-15 22:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-13221",
                                "url": "https://ubuntu.com/security/CVE-2026-13221",
                                "cve_description": "Perl versions before 5.40.5-RC1, from 5.41.0 before 5.42.3-RC1, from 5.43.0 before 5.43.10 produce silently incorrect regular expression matches when an alternation of more than 65535 fixed string branches is compiled into a trie in Perl_study_chunk.  When such branches are combined into a trie, the delta between the first branch and the shared tail is stored in a 16-bit field. A branch count above 65535 overflows the field, and the trie's match decision table is truncated with no warning or error.  A pattern of this shape produces false positive matches (matching strings it should not) and false negative matches (failing to match strings it should). When such a pattern gates an access or filtering decision, the result is wrong.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-07-13 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-57432",
                                "url": "https://ubuntu.com/security/CVE-2026-57432",
                                "cve_description": "Perl versions before 5.40.5-RC1, from 5.41.0 before 5.42.3-RC1, from 5.43.0 before 5.43.11 have an integer overflow in S_measure_struct leading to an out-of-bounds heap read in pack and unpack.  S_measure_struct adds each item's size times its repeat count to a running total with no overflow check, so a large repeat count in a pack or unpack template wraps the signed SSize_t total negative. The @, X, and x position codes then guard their moves with a signed length comparison that passes when the length is negative, advancing the buffer pointer out of bounds.  A template derived from untrusted input can read heap memory past the buffer and return it to the caller.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-07-13 17:17:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-57433",
                                "url": "https://ubuntu.com/security/CVE-2026-57433",
                                "cve_description": "Storable versions before 3.41 for Perl have a signed integer overflow when deserializing a crafted SX_HOOK record.  retrieve_hook_common reads a signed 32-bit item count from an SX_HOOK record and calls av_extend with that count plus one. A count of I32_MAX wraps the addition to a negative value.  A crafted blob passed to thaw or retrieve triggers the overflow; av_extend receives the negative count and dies with a panic, terminating the deserialization.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-07-13 17:17:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Out-of-bounds heap read in Socket pack_ip_mreq_source",
                            "    - debian/patches/CVE-2026-12087.patch: Scope STRLEN len per argument in",
                            "      pack_ip_mreq_source in cpan/Socket/Socket.xs",
                            "    - CVE-2026-12087",
                            "  * SECURITY UPDATE: Trie 16-bit overflow causing incorrect regex matches",
                            "    - debian/patches/CVE-2026-13221.patch: Skip trie creation when branch delta",
                            "      would overflow 16 bits in regcomp_study.c, t/re/pat_advanced.t",
                            "    - CVE-2026-13221",
                            "  * SECURITY UPDATE: Integer overflow leading to heap OOB read in pack/unpack",
                            "    - debian/patches/CVE-2026-57432_1.patch: Reject pack/unpack template sizes",
                            "      that would overflow SSize_t in pp_pack.c",
                            "    - debian/patches/CVE-2026-57432_2.patch: Avoid bit-count overflows in B/H",
                            "      template size math in pp_pack.c",
                            "    - CVE-2026-57432",
                            "  * SECURITY UPDATE: Signed int overflow in Storable SX_HOOK deserialization",
                            "    - debian/patches/CVE-2026-57433.patch: Reject I32_MAX hook data item counts",
                            "      before av_extend in dist/Storable/Storable.xs",
                            "    - CVE-2026-57433",
                            ""
                        ],
                        "package": "perl",
                        "version": "5.40.1-7ubuntu0.3",
                        "urgency": "medium",
                        "distributions": "resolute-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Shafayat Hossain Majumder <shafayat.majumder@canonical.com>",
                        "date": "Tue, 08 Sep 2026 14:17:45 -0400"
                    },
                    {
                        "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.40.1-7ubuntu0.2",
                        "urgency": "medium",
                        "distributions": "resolute-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Shafayat Hossain Majumder <shafayat.majumder@canonical.com>",
                        "date": "Thu, 03 Sep 2026 10:50:10 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "python3-cryptography",
                "from_version": {
                    "source_package_name": "python-cryptography",
                    "source_package_version": "46.0.5-1ubuntu2",
                    "version": "46.0.5-1ubuntu2"
                },
                "to_version": {
                    "source_package_name": "python-cryptography",
                    "source_package_version": "46.0.5-1ubuntu2.2",
                    "version": "46.0.5-1ubuntu2.2"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-69247",
                        "url": "https://ubuntu.com/security/CVE-2026-69247",
                        "cve_description": "cryptography is a package designed to expose cryptographic primitives and recipes to Python developers. From 44.0.0 until 50.0.0, pkcs7_decrypt_der, pkcs7_decrypt_pem, and pkcs7_decrypt_smime reported the outcome of decrypting a RecipientInfo's encryptedKey in several distinguishable ways, one of which disclosed the exact length recovered from the RSA operation. The same distinction was also observable by timing. An application that decrypts attacker-supplied EnvelopedData and reflects the outcome gives the attacker a Bleichenbacher oracle against the content-encryption key. Decryption ran as RSA PKCS#1 v1.5 decrypt of encryptedKey, build an AES cipher from the result, then AES-CBC decrypt and PKCS#7 unpad. Invalid RSA padding, a valid padding with a bad key length, a correct length with a wrong key, and the real key each failed or succeeded differently. Case 1 is reachable only where the linked library lacks implicit rejection: OpenSSL 3.0 and 3.1, LibreSSL, and BoringSSL. Exploitation requires a service that auto-decrypts untrusted EnvelopedData matching the victim certificate and answers adaptively at high volume, such as an S/MIME gateway or mail filter. This issue is fixed in 50.0.0.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-08-03 22:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-69248",
                        "url": "https://ubuntu.com/security/CVE-2026-69248",
                        "cve_description": "cryptography is a package designed to expose cryptographic primitives and recipes to Python developers. In versions 45.0.0 through 48.0.0, if an intermediate constrained CA permits the DNS name foo.example.com, and the leaf certificate has a wildcard in its DNS SAN of *.example.com, python-cryptography's verifier accepts which allows escaping outside of the permitted names. The core issue is in DNSConstraint::matches, where a wildcard pattern was treated as matching a more-specific permitted constraint even though *.example.com can expand to sibling names such as bar.example.com outside foo.example.com. This allows acceptance of an invalid certificate chain. This issue is fixed in 49.0.0.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-08-03 22:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-69249",
                        "url": "https://ubuntu.com/security/CVE-2026-69249",
                        "cve_description": "python-cryptography is a package designed to expose cryptographic primitives and recipes to Python developers. In versions 42.0.0 through 48.0.0, when resolving invalid certificate chains that include duplicate copies of self-signed certificates, the processing recursively invokes the same candidate, leading to an exponential blowup. Although the limitation that the chain depth cannot exceed a specified maximum depth prevents unbounded recursion and guarantees termination, an attacker-controlled certificate chain can lead the processing to easily take more than 5s to reject in testing. This amplification could form the basis for a resource exhaustion denial of service attack. The core issue arises in the recursive nature of build_chain_inner, which does not de-duplicate against previously analyzed candidates. As the correctness of validation is not affected, the integrity of a system cannot be compromised through this vector, only its availability. This issue is fixed in 49.0.0.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-08-03 22:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-69247",
                                "url": "https://ubuntu.com/security/CVE-2026-69247",
                                "cve_description": "cryptography is a package designed to expose cryptographic primitives and recipes to Python developers. From 44.0.0 until 50.0.0, pkcs7_decrypt_der, pkcs7_decrypt_pem, and pkcs7_decrypt_smime reported the outcome of decrypting a RecipientInfo's encryptedKey in several distinguishable ways, one of which disclosed the exact length recovered from the RSA operation. The same distinction was also observable by timing. An application that decrypts attacker-supplied EnvelopedData and reflects the outcome gives the attacker a Bleichenbacher oracle against the content-encryption key. Decryption ran as RSA PKCS#1 v1.5 decrypt of encryptedKey, build an AES cipher from the result, then AES-CBC decrypt and PKCS#7 unpad. Invalid RSA padding, a valid padding with a bad key length, a correct length with a wrong key, and the real key each failed or succeeded differently. Case 1 is reachable only where the linked library lacks implicit rejection: OpenSSL 3.0 and 3.1, LibreSSL, and BoringSSL. Exploitation requires a service that auto-decrypts untrusted EnvelopedData matching the victim certificate and answers adaptively at high volume, such as an S/MIME gateway or mail filter. This issue is fixed in 50.0.0.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-08-03 22:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-69248",
                                "url": "https://ubuntu.com/security/CVE-2026-69248",
                                "cve_description": "cryptography is a package designed to expose cryptographic primitives and recipes to Python developers. In versions 45.0.0 through 48.0.0, if an intermediate constrained CA permits the DNS name foo.example.com, and the leaf certificate has a wildcard in its DNS SAN of *.example.com, python-cryptography's verifier accepts which allows escaping outside of the permitted names. The core issue is in DNSConstraint::matches, where a wildcard pattern was treated as matching a more-specific permitted constraint even though *.example.com can expand to sibling names such as bar.example.com outside foo.example.com. This allows acceptance of an invalid certificate chain. This issue is fixed in 49.0.0.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-08-03 22:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-69249",
                                "url": "https://ubuntu.com/security/CVE-2026-69249",
                                "cve_description": "python-cryptography is a package designed to expose cryptographic primitives and recipes to Python developers. In versions 42.0.0 through 48.0.0, when resolving invalid certificate chains that include duplicate copies of self-signed certificates, the processing recursively invokes the same candidate, leading to an exponential blowup. Although the limitation that the chain depth cannot exceed a specified maximum depth prevents unbounded recursion and guarantees termination, an attacker-controlled certificate chain can lead the processing to easily take more than 5s to reject in testing. This amplification could form the basis for a resource exhaustion denial of service attack. The core issue arises in the recursive nature of build_chain_inner, which does not de-duplicate against previously analyzed candidates. As the correctness of validation is not affected, the integrity of a system cannot be compromised through this vector, only its availability. This issue is fixed in 49.0.0.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-08-03 22:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: sensitive decryption data is leaked",
                            "    - debian/patches/CVE-2026-69247.patch: don't leak how PKCS#7 encryptedKey",
                            "      decryption failed in docs/hazmat/primitives/asymmetric/serialization.rst,",
                            "      docs/spelling_wordlist.txt, src/rust/src/pkcs7.rs, tests/doubles.py,",
                            "      tests/hazmat/primitives/test_pkcs7.py.",
                            "    - CVE-2026-69247",
                            "  * SECURITY UPDATE: acceptance of non-permitted DNS names",
                            "    - debian/patches/CVE-2026-69248.patch: distinguish NC kinds when",
                            "      evaluating wildcard DNS SANs in",
                            "      src/rust/cryptography-x509-verification/src/lib.rs,",
                            "      src/rust/cryptography-x509-verification/src/types.rs.",
                            "    - CVE-2026-69248",
                            "  * SECURITY UPDATE: exponential processing of invalid certificates",
                            "    - debian/patches/CVE-2026-69249.patch: add a signature validation budget",
                            "      during path construction in",
                            "      src/rust/cryptography-x509-verification/src/lib.rs,",
                            "      src/rust/cryptography-x509-verification/src/policy/mod.rs.",
                            "    - CVE-2026-69249",
                            ""
                        ],
                        "package": "python-cryptography",
                        "version": "46.0.5-1ubuntu2.2",
                        "urgency": "medium",
                        "distributions": "resolute-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Charles Cochran <charles.cochran@canonical.com>",
                        "date": "Fri, 04 Sep 2026 17:24:34 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "python3-netplan",
                "from_version": {
                    "source_package_name": "netplan.io",
                    "source_package_version": "1.2-1ubuntu5",
                    "version": "1.2-1ubuntu5"
                },
                "to_version": {
                    "source_package_name": "netplan.io",
                    "source_package_version": "1.2-1ubuntu5.1",
                    "version": "1.2-1ubuntu5.1"
                },
                "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": "1.2-1ubuntu5.1",
                        "urgency": "medium",
                        "distributions": "resolute",
                        "launchpad_bugs_fixed": [
                            2104373
                        ],
                        "author": "Guilherme Puida Moreira <guilherme.moreira@canonical.com>",
                        "date": "Mon, 31 Aug 2026 09:23:48 -0300"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "python3.14",
                "from_version": {
                    "source_package_name": "python3.14",
                    "source_package_version": "3.14.4-1ubuntu0.1",
                    "version": "3.14.4-1ubuntu0.1"
                },
                "to_version": {
                    "source_package_name": "python3.14",
                    "source_package_version": "3.14.4-1ubuntu0.2",
                    "version": "3.14.4-1ubuntu0.2"
                },
                "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.14",
                        "version": "3.14.4-1ubuntu0.2",
                        "urgency": "medium",
                        "distributions": "resolute-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Allen Huang <allen.huang@canonical.com>",
                        "date": "Thu, 20 Aug 2026 11:41:58 +0100"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "python3.14-minimal",
                "from_version": {
                    "source_package_name": "python3.14",
                    "source_package_version": "3.14.4-1ubuntu0.1",
                    "version": "3.14.4-1ubuntu0.1"
                },
                "to_version": {
                    "source_package_name": "python3.14",
                    "source_package_version": "3.14.4-1ubuntu0.2",
                    "version": "3.14.4-1ubuntu0.2"
                },
                "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.14",
                        "version": "3.14.4-1ubuntu0.2",
                        "urgency": "medium",
                        "distributions": "resolute-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Allen Huang <allen.huang@canonical.com>",
                        "date": "Thu, 20 Aug 2026 11:41:58 +0100"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "wireless-regdb",
                "from_version": {
                    "source_package_name": "wireless-regdb",
                    "source_package_version": "2026.02.04-0ubuntu1",
                    "version": "2026.02.04-0ubuntu1"
                },
                "to_version": {
                    "source_package_name": "wireless-regdb",
                    "source_package_version": "2026.05.30-0ubuntu1~26.04.1",
                    "version": "2026.05.30-0ubuntu1~26.04.1"
                },
                "cves": [],
                "launchpad_bugs_fixed": [
                    2163172,
                    2163172
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Backport 2026.05.30-0ubuntu1 to Resolute (LP: #2163172)",
                            ""
                        ],
                        "package": "wireless-regdb",
                        "version": "2026.05.30-0ubuntu1~26.04.1",
                        "urgency": "medium",
                        "distributions": "resolute",
                        "launchpad_bugs_fixed": [
                            2163172
                        ],
                        "author": "Jacob Martin <jacob.martin@canonical.com>",
                        "date": "Mon, 17 Aug 2026 12:26:23 -0500"
                    },
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * New upstream version 2026.05.30 (LP: #2163172)",
                            "    - debian/control: Exchange python3-m2crypto build dependency for",
                            "      python3-cryptography",
                            ""
                        ],
                        "package": "wireless-regdb",
                        "version": "2026.05.30-0ubuntu1",
                        "urgency": "medium",
                        "distributions": "stonking",
                        "launchpad_bugs_fixed": [
                            2163172
                        ],
                        "author": "Jacob Martin <jacob.martin@canonical.com>",
                        "date": "Mon, 10 Aug 2026 10:02:11 -0500"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            }
        ],
        "snap": []
    },
    "added": {
        "deb": [],
        "snap": []
    },
    "removed": {
        "deb": [],
        "snap": []
    },
    "notes": "Changelog diff for Ubuntu 26.04 resolute image from release image serial 20260908 to 20260918",
    "from_series": "resolute",
    "to_series": "resolute",
    "from_serial": "20260908",
    "to_serial": "20260918",
    "from_manifest_filename": "release_manifest.previous",
    "to_manifest_filename": "manifest.current"
}