{
    "summary": {
        "snap": {
            "added": [],
            "removed": [],
            "diff": []
        },
        "deb": {
            "added": [],
            "removed": [
                "curl",
                "libcurl4t64",
                "libldap-common",
                "libldap2",
                "libnghttp2-14",
                "librtmp1",
                "libsasl2-2",
                "libsasl2-modules-db",
                "libssh2-1t64",
                "pollinate",
                "xxd"
            ],
            "diff": [
                "libpam-modules",
                "libpam-modules-bin",
                "libpam-runtime",
                "libpam0g",
                "ubuntu-cloud-minimal"
            ]
        }
    },
    "diff": {
        "deb": [
            {
                "name": "libpam-modules",
                "from_version": {
                    "source_package_name": "pam",
                    "source_package_version": "1.7.0-5ubuntu3",
                    "version": "1.7.0-5ubuntu3"
                },
                "to_version": {
                    "source_package_name": "pam",
                    "source_package_version": "1.7.0-5ubuntu3.1",
                    "version": "1.7.0-5ubuntu3.1"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-54411",
                        "url": "https://ubuntu.com/security/CVE-2026-54411",
                        "cve_description": "Linux-PAM through 1.7.2 contains an observable timing discrepancy (CWE-208) in the pam_userdb module's plaintext-password comparison path in modules/pam_userdb/pam_userdb.c that allows a local or network-adjacent attacker able to repeatedly drive authentication through a calling service to recover the plaintext password of a target account by measuring response-timing differences. The comparison uses strncmp() (or strncasecmp() when PAM_ICASE_ARG is set) preceded by a length-equality check, so the time to reject a candidate depends on the index of the first differing byte and on whether the candidate's length matches the stored password, leaking the password length and individual prefix bytes. The vulnerable path is reached when the administrator configures pam_userdb with crypt=none, with an unrecognized crypt method, or without a crypt= argument, causing the module to store and compare credentials in plaintext.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-06-14 18:17:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-54411",
                                "url": "https://ubuntu.com/security/CVE-2026-54411",
                                "cve_description": "Linux-PAM through 1.7.2 contains an observable timing discrepancy (CWE-208) in the pam_userdb module's plaintext-password comparison path in modules/pam_userdb/pam_userdb.c that allows a local or network-adjacent attacker able to repeatedly drive authentication through a calling service to recover the plaintext password of a target account by measuring response-timing differences. The comparison uses strncmp() (or strncasecmp() when PAM_ICASE_ARG is set) preceded by a length-equality check, so the time to reject a candidate depends on the index of the first differing byte and on whether the candidate's length matches the stored password, leaking the password length and individual prefix bytes. The vulnerable path is reached when the administrator configures pam_userdb with crypt=none, with an unrecognized crypt method, or without a crypt= argument, causing the module to store and compare credentials in plaintext.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-06-14 18:17:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: password recovery via timing discrepancy in pam_userdb",
                            "    module string comparisons",
                            "    - debian/patches/CVE-2026-54411.patch: pam_userdb: fix password comparison",
                            "      timing leak in libpam/include/pam_inline.h,",
                            "      modules/pam_userdb/pam_userdb.c.",
                            "    - CVE-2026-54411",
                            ""
                        ],
                        "package": "pam",
                        "version": "1.7.0-5ubuntu3.1",
                        "urgency": "medium",
                        "distributions": "resolute-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Thu, 16 Jul 2026 09:34:12 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libpam-modules-bin",
                "from_version": {
                    "source_package_name": "pam",
                    "source_package_version": "1.7.0-5ubuntu3",
                    "version": "1.7.0-5ubuntu3"
                },
                "to_version": {
                    "source_package_name": "pam",
                    "source_package_version": "1.7.0-5ubuntu3.1",
                    "version": "1.7.0-5ubuntu3.1"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-54411",
                        "url": "https://ubuntu.com/security/CVE-2026-54411",
                        "cve_description": "Linux-PAM through 1.7.2 contains an observable timing discrepancy (CWE-208) in the pam_userdb module's plaintext-password comparison path in modules/pam_userdb/pam_userdb.c that allows a local or network-adjacent attacker able to repeatedly drive authentication through a calling service to recover the plaintext password of a target account by measuring response-timing differences. The comparison uses strncmp() (or strncasecmp() when PAM_ICASE_ARG is set) preceded by a length-equality check, so the time to reject a candidate depends on the index of the first differing byte and on whether the candidate's length matches the stored password, leaking the password length and individual prefix bytes. The vulnerable path is reached when the administrator configures pam_userdb with crypt=none, with an unrecognized crypt method, or without a crypt= argument, causing the module to store and compare credentials in plaintext.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-06-14 18:17:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-54411",
                                "url": "https://ubuntu.com/security/CVE-2026-54411",
                                "cve_description": "Linux-PAM through 1.7.2 contains an observable timing discrepancy (CWE-208) in the pam_userdb module's plaintext-password comparison path in modules/pam_userdb/pam_userdb.c that allows a local or network-adjacent attacker able to repeatedly drive authentication through a calling service to recover the plaintext password of a target account by measuring response-timing differences. The comparison uses strncmp() (or strncasecmp() when PAM_ICASE_ARG is set) preceded by a length-equality check, so the time to reject a candidate depends on the index of the first differing byte and on whether the candidate's length matches the stored password, leaking the password length and individual prefix bytes. The vulnerable path is reached when the administrator configures pam_userdb with crypt=none, with an unrecognized crypt method, or without a crypt= argument, causing the module to store and compare credentials in plaintext.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-06-14 18:17:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: password recovery via timing discrepancy in pam_userdb",
                            "    module string comparisons",
                            "    - debian/patches/CVE-2026-54411.patch: pam_userdb: fix password comparison",
                            "      timing leak in libpam/include/pam_inline.h,",
                            "      modules/pam_userdb/pam_userdb.c.",
                            "    - CVE-2026-54411",
                            ""
                        ],
                        "package": "pam",
                        "version": "1.7.0-5ubuntu3.1",
                        "urgency": "medium",
                        "distributions": "resolute-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Thu, 16 Jul 2026 09:34:12 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libpam-runtime",
                "from_version": {
                    "source_package_name": "pam",
                    "source_package_version": "1.7.0-5ubuntu3",
                    "version": "1.7.0-5ubuntu3"
                },
                "to_version": {
                    "source_package_name": "pam",
                    "source_package_version": "1.7.0-5ubuntu3.1",
                    "version": "1.7.0-5ubuntu3.1"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-54411",
                        "url": "https://ubuntu.com/security/CVE-2026-54411",
                        "cve_description": "Linux-PAM through 1.7.2 contains an observable timing discrepancy (CWE-208) in the pam_userdb module's plaintext-password comparison path in modules/pam_userdb/pam_userdb.c that allows a local or network-adjacent attacker able to repeatedly drive authentication through a calling service to recover the plaintext password of a target account by measuring response-timing differences. The comparison uses strncmp() (or strncasecmp() when PAM_ICASE_ARG is set) preceded by a length-equality check, so the time to reject a candidate depends on the index of the first differing byte and on whether the candidate's length matches the stored password, leaking the password length and individual prefix bytes. The vulnerable path is reached when the administrator configures pam_userdb with crypt=none, with an unrecognized crypt method, or without a crypt= argument, causing the module to store and compare credentials in plaintext.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-06-14 18:17:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-54411",
                                "url": "https://ubuntu.com/security/CVE-2026-54411",
                                "cve_description": "Linux-PAM through 1.7.2 contains an observable timing discrepancy (CWE-208) in the pam_userdb module's plaintext-password comparison path in modules/pam_userdb/pam_userdb.c that allows a local or network-adjacent attacker able to repeatedly drive authentication through a calling service to recover the plaintext password of a target account by measuring response-timing differences. The comparison uses strncmp() (or strncasecmp() when PAM_ICASE_ARG is set) preceded by a length-equality check, so the time to reject a candidate depends on the index of the first differing byte and on whether the candidate's length matches the stored password, leaking the password length and individual prefix bytes. The vulnerable path is reached when the administrator configures pam_userdb with crypt=none, with an unrecognized crypt method, or without a crypt= argument, causing the module to store and compare credentials in plaintext.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-06-14 18:17:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: password recovery via timing discrepancy in pam_userdb",
                            "    module string comparisons",
                            "    - debian/patches/CVE-2026-54411.patch: pam_userdb: fix password comparison",
                            "      timing leak in libpam/include/pam_inline.h,",
                            "      modules/pam_userdb/pam_userdb.c.",
                            "    - CVE-2026-54411",
                            ""
                        ],
                        "package": "pam",
                        "version": "1.7.0-5ubuntu3.1",
                        "urgency": "medium",
                        "distributions": "resolute-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Thu, 16 Jul 2026 09:34:12 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libpam0g",
                "from_version": {
                    "source_package_name": "pam",
                    "source_package_version": "1.7.0-5ubuntu3",
                    "version": "1.7.0-5ubuntu3"
                },
                "to_version": {
                    "source_package_name": "pam",
                    "source_package_version": "1.7.0-5ubuntu3.1",
                    "version": "1.7.0-5ubuntu3.1"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-54411",
                        "url": "https://ubuntu.com/security/CVE-2026-54411",
                        "cve_description": "Linux-PAM through 1.7.2 contains an observable timing discrepancy (CWE-208) in the pam_userdb module's plaintext-password comparison path in modules/pam_userdb/pam_userdb.c that allows a local or network-adjacent attacker able to repeatedly drive authentication through a calling service to recover the plaintext password of a target account by measuring response-timing differences. The comparison uses strncmp() (or strncasecmp() when PAM_ICASE_ARG is set) preceded by a length-equality check, so the time to reject a candidate depends on the index of the first differing byte and on whether the candidate's length matches the stored password, leaking the password length and individual prefix bytes. The vulnerable path is reached when the administrator configures pam_userdb with crypt=none, with an unrecognized crypt method, or without a crypt= argument, causing the module to store and compare credentials in plaintext.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-06-14 18:17:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-54411",
                                "url": "https://ubuntu.com/security/CVE-2026-54411",
                                "cve_description": "Linux-PAM through 1.7.2 contains an observable timing discrepancy (CWE-208) in the pam_userdb module's plaintext-password comparison path in modules/pam_userdb/pam_userdb.c that allows a local or network-adjacent attacker able to repeatedly drive authentication through a calling service to recover the plaintext password of a target account by measuring response-timing differences. The comparison uses strncmp() (or strncasecmp() when PAM_ICASE_ARG is set) preceded by a length-equality check, so the time to reject a candidate depends on the index of the first differing byte and on whether the candidate's length matches the stored password, leaking the password length and individual prefix bytes. The vulnerable path is reached when the administrator configures pam_userdb with crypt=none, with an unrecognized crypt method, or without a crypt= argument, causing the module to store and compare credentials in plaintext.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-06-14 18:17:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: password recovery via timing discrepancy in pam_userdb",
                            "    module string comparisons",
                            "    - debian/patches/CVE-2026-54411.patch: pam_userdb: fix password comparison",
                            "      timing leak in libpam/include/pam_inline.h,",
                            "      modules/pam_userdb/pam_userdb.c.",
                            "    - CVE-2026-54411",
                            ""
                        ],
                        "package": "pam",
                        "version": "1.7.0-5ubuntu3.1",
                        "urgency": "medium",
                        "distributions": "resolute-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Thu, 16 Jul 2026 09:34:12 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "ubuntu-cloud-minimal",
                "from_version": {
                    "source_package_name": "ubuntu-meta",
                    "source_package_version": "1.570.1",
                    "version": "1.570.1"
                },
                "to_version": {
                    "source_package_name": "ubuntu-meta",
                    "source_package_version": "1.570.2",
                    "version": "1.570.2"
                },
                "cves": [],
                "launchpad_bugs_fixed": [
                    2158262
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Refreshed dependencies",
                            "  * Removed pollinate from cloud-minimal, server, server-minimal,",
                            "    server-raspi (LP: #2158262)",
                            ""
                        ],
                        "package": "ubuntu-meta",
                        "version": "1.570.2",
                        "urgency": "medium",
                        "distributions": "resolute",
                        "launchpad_bugs_fixed": [
                            2158262
                        ],
                        "author": "Christian Ehrhardt <christian.ehrhardt@canonical.com>",
                        "date": "Fri, 03 Jul 2026 12:24:53 +0200"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            }
        ],
        "snap": []
    },
    "added": {
        "deb": [],
        "snap": []
    },
    "removed": {
        "deb": [
            {
                "name": "curl",
                "from_version": {
                    "source_package_name": "curl",
                    "source_package_version": "8.18.0-1ubuntu2.3",
                    "version": "8.18.0-1ubuntu2.3"
                },
                "to_version": {
                    "source_package_name": null,
                    "source_package_version": null,
                    "version": null
                },
                "cves": [],
                "launchpad_bugs_fixed": [],
                "changes": [],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libcurl4t64",
                "from_version": {
                    "source_package_name": "curl",
                    "source_package_version": "8.18.0-1ubuntu2.3",
                    "version": "8.18.0-1ubuntu2.3"
                },
                "to_version": {
                    "source_package_name": null,
                    "source_package_version": null,
                    "version": null
                },
                "cves": [],
                "launchpad_bugs_fixed": [],
                "changes": [],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libldap-common",
                "from_version": {
                    "source_package_name": "openldap",
                    "source_package_version": "2.6.10+dfsg-1ubuntu5",
                    "version": "2.6.10+dfsg-1ubuntu5"
                },
                "to_version": {
                    "source_package_name": null,
                    "source_package_version": null,
                    "version": null
                },
                "cves": [],
                "launchpad_bugs_fixed": [],
                "changes": [],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libldap2",
                "from_version": {
                    "source_package_name": "openldap",
                    "source_package_version": "2.6.10+dfsg-1ubuntu5",
                    "version": "2.6.10+dfsg-1ubuntu5"
                },
                "to_version": {
                    "source_package_name": null,
                    "source_package_version": null,
                    "version": null
                },
                "cves": [],
                "launchpad_bugs_fixed": [],
                "changes": [],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libnghttp2-14",
                "from_version": {
                    "source_package_name": "nghttp2",
                    "source_package_version": "1.68.0-2ubuntu0.2",
                    "version": "1.68.0-2ubuntu0.2"
                },
                "to_version": {
                    "source_package_name": null,
                    "source_package_version": null,
                    "version": null
                },
                "cves": [],
                "launchpad_bugs_fixed": [],
                "changes": [],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "librtmp1",
                "from_version": {
                    "source_package_name": "rtmpdump",
                    "source_package_version": "2.4+20151223.gitfa8646d.1-3",
                    "version": "2.4+20151223.gitfa8646d.1-3"
                },
                "to_version": {
                    "source_package_name": null,
                    "source_package_version": null,
                    "version": null
                },
                "cves": [],
                "launchpad_bugs_fixed": [],
                "changes": [],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libsasl2-2",
                "from_version": {
                    "source_package_name": "cyrus-sasl2",
                    "source_package_version": "2.1.28+dfsg1-9ubuntu3",
                    "version": "2.1.28+dfsg1-9ubuntu3"
                },
                "to_version": {
                    "source_package_name": null,
                    "source_package_version": null,
                    "version": null
                },
                "cves": [],
                "launchpad_bugs_fixed": [],
                "changes": [],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libsasl2-modules-db",
                "from_version": {
                    "source_package_name": "cyrus-sasl2",
                    "source_package_version": "2.1.28+dfsg1-9ubuntu3",
                    "version": "2.1.28+dfsg1-9ubuntu3"
                },
                "to_version": {
                    "source_package_name": null,
                    "source_package_version": null,
                    "version": null
                },
                "cves": [],
                "launchpad_bugs_fixed": [],
                "changes": [],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libssh2-1t64",
                "from_version": {
                    "source_package_name": "libssh2",
                    "source_package_version": "1.11.1-1ubuntu0.26.04.3",
                    "version": "1.11.1-1ubuntu0.26.04.3"
                },
                "to_version": {
                    "source_package_name": null,
                    "source_package_version": null,
                    "version": null
                },
                "cves": [],
                "launchpad_bugs_fixed": [],
                "changes": [],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "pollinate",
                "from_version": {
                    "source_package_name": "pollinate",
                    "source_package_version": "4.33-4ubuntu6",
                    "version": "4.33-4ubuntu6"
                },
                "to_version": {
                    "source_package_name": null,
                    "source_package_version": null,
                    "version": null
                },
                "cves": [],
                "launchpad_bugs_fixed": [],
                "changes": [],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "xxd",
                "from_version": {
                    "source_package_name": "vim",
                    "source_package_version": "2:9.1.2141-1ubuntu4.7",
                    "version": "2:9.1.2141-1ubuntu4.7"
                },
                "to_version": {
                    "source_package_name": null,
                    "source_package_version": null,
                    "version": null
                },
                "cves": [],
                "launchpad_bugs_fixed": [],
                "changes": [],
                "notes": null,
                "is_version_downgrade": false
            }
        ],
        "snap": []
    },
    "notes": "Changelog diff for Ubuntu 26.04 resolute image from release image serial 20260723 to 20260725",
    "from_series": "resolute",
    "to_series": "resolute",
    "from_serial": "20260723",
    "to_serial": "20260725",
    "from_manifest_filename": "release_manifest.previous",
    "to_manifest_filename": "manifest.current"
}