{"id":"CVE-2026-19816","aliases":["DEBIAN-CVE-2026-19816","EUVD-2026-78063","GHSA-g5gf-h68q-gxc8","UBUNTU-CVE-2026-19816","openSUSE-SU-2026:11855-1"],"status":"published","title":"PackageKit: dnf5 backend ignores SIMULATE on RepoRemove","description":"A flaw was found in PackageKit. PackageKit skips the polkit authorization check for transactions carrying the SIMULATE (dry-run) flag. In the dnf5 backend, the RepoRemove handler ignores that contract and always executes the real transaction because its guard is written as (role == REPO_REMOVE || !SIMULATE), which is always true for RepoRemove. An unprivileged local user can therefore perform a genuine package uninstall while claiming to simulate. This vulnerability only affects systems using PackageKit with the dnf5 backend.","severity":{"version":"3.1","score":7.1,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H","level":"high","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-12","score":0.00143,"percentile":0.0369,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-863"],"published":"2026-09-14T20:05:00Z","modified":"2026-10-28T11:08:05Z","fixes":[{"ecosystem":"Debian:14","package":"packagekit","fixed_in":["1.4.0-1"],"sources":["osv"]},{"ecosystem":"openSUSE:Tumbleweed","package":"PackageKit","fixed_in":["1.4.0-1.1"],"sources":["osv"]}],"affected":[{"source":"osv","ecosystem":"Debian:12","package":"packagekit","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.2.6-5","1.2.6-5+deb12u1","1.2.7-1","1.2.8-1","1.2.8-2","1.3.0-1","1.3.0-2","1.3.0-3","1.3.1-1","1.3.2-1","1.3.3-1","1.3.4-1","1.3.4-3","1.3.5-1","1.3.6-1","1.4.0-1"]},{"source":"osv","ecosystem":"Debian:13","package":"packagekit","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.3.1-1","1.3.1-1+deb13u1","1.3.2-1","1.3.3-1","1.3.4-1","1.3.4-3","1.3.5-1","1.3.6-1","1.4.0-1"]},{"source":"osv","ecosystem":"Debian:14","package":"packagekit","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.4.0-1"}]}],"versions":["1.3.1-1","1.3.2-1","1.3.3-1","1.3.4-1","1.3.4-3","1.3.5-1","1.3.6-1"]},{"source":"osv","ecosystem":"openSUSE:Tumbleweed","package":"PackageKit","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.4.0-1.1"}]}]}],"products":[{"vendor":"fedora","product":"fedora"},{"vendor":"red hat","product":"red hat enterprise linux 10"},{"vendor":"red hat","product":"red hat enterprise linux 6"},{"vendor":"red hat","product":"red hat enterprise linux 7"},{"vendor":"red hat","product":"red hat enterprise linux 8"},{"vendor":"red hat","product":"red hat enterprise linux 9"}],"references":[{"url":"https://github.com/PackageKit/PackageKit/commit/33be77b3ecd3b566ca117358dc18c58c964e627b","tags":["patch","fix"]},{"url":"https://github.com/PackageKit/PackageKit/security/advisories/GHSA-g5gf-h68q-gxc8","tags":["vendor-advisory","advisory","report"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2515940","tags":["issue-tracking","report"]},{"url":"https://access.redhat.com/downloads/content/package-browser/","tags":["web"]},{"url":"https://bodhi.fedoraproject.org/updates/?packages=PackageKit","tags":["web"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/19xxx/CVE-2026-19816.json","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-19816","tags":["advisory"]},{"url":"https://github.com/PackageKit/PackageKit","tags":["package"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2026-19816","tags":["advisory"]},{"url":"https://ubuntu.com/security/CVE-2026-19816","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-19816","tags":["report"]},{"url":"","tags":["advisory"]},{"url":"https://www.suse.com/security/cve/CVE-2026-19816","tags":["web"]}],"sources":{"cve":[{"id":"CVE-2026-19816","title":"PackageKit: dnf5 backend ignores SIMULATE on RepoRemove","description":"A flaw was found in PackageKit. PackageKit skips the polkit authorization check for transactions carrying the SIMULATE (dry-run) flag. In the dnf5 backend, the RepoRemove handler ignores that contract and always executes the real transaction because its guard is written as (role == REPO_REMOVE || !SIMULATE), which is always true for RepoRemove. An unprivileged local user can therefore perform a genuine package uninstall while claiming to simulate. This vulnerability only affects systems using PackageKit with the dnf5 backend.","status":"published","published":"2026-09-14T20:05:00.169Z","modified":"2026-09-15T18:04:51.167Z","cvss":[{"version":"3.1","score":7.1,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H","level":"high","assessor":"cna"}],"cwes":["CWE-863"],"updated_at":"2026-11-02T13:47:17.512524Z"}],"euvd":[{"id":"EUVD-2026-78063","description":"A flaw was found in PackageKit. PackageKit skips the polkit authorization check for transactions carrying the SIMULATE (dry-run) flag. In the dnf5 backend, the RepoRemove handler ignores that contract and always executes the real transaction because its guard is written as (role == REPO_REMOVE || !SIMULATE), which is always true for RepoRemove. An unprivileged local user can therefore perform a genuine package uninstall while claiming to simulate. This vulnerability only affects systems using PackageKit with the dnf5 backend.","status":"published","published":"2026-09-14T20:05:00Z","modified":"2026-09-15T18:04:51Z","cvss":[{"version":"3.1","score":7.1,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H","level":"high"}],"updated_at":"2026-11-02T17:28:17.333425Z"}],"nvd":[{"id":"CVE-2026-19816","description":"A flaw was found in PackageKit. PackageKit skips the polkit authorization check for transactions carrying the SIMULATE (dry-run) flag. In the dnf5 backend, the RepoRemove handler ignores that contract and always executes the real transaction because its guard is written as (role == REPO_REMOVE || !SIMULATE), which is always true for RepoRemove. An unprivileged local user can therefore perform a genuine package uninstall while claiming to simulate. This vulnerability only affects systems using PackageKit with the dnf5 backend.","status":"published","published":"2026-09-14T20:16:43.76Z","modified":"2026-09-18T19:34:36.657Z","cvss":[{"version":"3.1","score":7.1,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H","level":"high","assessor":"secondary"}],"cwes":["CWE-863"],"updated_at":"2026-11-02T14:12:47.335523Z"}],"osv":[{"id":"CVE-2026-19816","title":"PackageKit: dnf5 backend ignores SIMULATE on RepoRemove","description":"A flaw was found in PackageKit. PackageKit skips the polkit authorization check for transactions carrying the SIMULATE (dry-run) flag. In the dnf5 backend, the RepoRemove handler ignores that contract and always executes the real transaction because its guard is written as (role == REPO_REMOVE || !SIMULATE), which is always true for RepoRemove. An unprivileged local user can therefore perform a genuine package uninstall while claiming to simulate. This vulnerability only affects systems using PackageKit with the dnf5 backend.","status":"published","published":"2026-09-14T20:05:00.169Z","modified":"2026-10-28T11:08:05.027564388Z","cvss":[{"version":"3.1","score":7.1,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H","level":"high"}],"cwes":["CWE-863"],"updated_at":"2026-11-02T15:44:58.024074Z"},{"id":"DEBIAN-CVE-2026-19816","description":"A flaw was found in PackageKit. PackageKit skips the polkit authorization check for transactions carrying the SIMULATE (dry-run) flag. In the dnf5 backend, the RepoRemove handler ignores that contract and always executes the real transaction because its guard is written as (role == REPO_REMOVE || !SIMULATE), which is always true for RepoRemove. An unprivileged local user can therefore perform a genuine package uninstall while claiming to simulate. This vulnerability only affects systems using PackageKit with the dnf5 backend.","status":"published","published":"2026-09-14T20:16:43.76Z","modified":"2026-10-01T03:02:29.859824333Z","cvss":[{"version":"3.1","score":7.1,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H","level":"high"}],"updated_at":"2026-11-02T15:45:53.097669Z"},{"id":"UBUNTU-CVE-2026-19816","description":"A flaw was found in PackageKit. PackageKit skips the polkit authorization check for transactions carrying the SIMULATE (dry-run) flag. In the dnf5 backend, the RepoRemove handler ignores that contract and always executes the real transaction because its guard is written as (role == REPO_REMOVE || !SIMULATE), which is always true for RepoRemove. An unprivileged local user can therefore perform a genuine package uninstall while claiming to simulate. This vulnerability only affects systems using PackageKit with the dnf5 backend.","status":"withdrawn","published":"2026-09-14T20:16:00Z","modified":"2026-09-24T18:30:06.579875175Z","cvss":[{"version":"3.1","score":7.1,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H","level":"high"}],"updated_at":"2026-11-02T16:56:01.334185Z"},{"id":"openSUSE-SU-2026:11855-1","title":"PackageKit-1.4.0-1.1 on GA media","description":"These are all security issues fixed in the PackageKit-1.4.0-1.1 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2026-09-23T00:00:00Z","modified":"2026-09-24T18:23:14.468740517Z","updated_at":"2026-11-02T16:58:40.245664Z"}]}}
