ZeroHour

CVE-2026-19816

mass

PackageKit dnf5 backend auth bypass lets local users perform real package removals

CVSS 3.1
7.1 high
EPSS
Published
()
Modified
AI analysis

PackageKit skips the polkit authorization check for transactions flagged SIMULATE (dry-run), assuming simulation is harmless, but the dnf5 backend's RepoRemove handler ignores that contract — its guard (role == REPO_REMOVE || !SIMULATE) is always true for RepoRemove — so the requested 'simulation' executes a genuine package uninstall. An unprivileged local user on an affected host can exploit this to remove arbitrary packages, causing high impact to system integrity and availability (C:N/I:H/A:H, CVSS 3.1: 7.1). Only systems running PackageKit with the dnf5 backend are affected; other backends honor the simulate flag. No public proof of concept is known, the flaw is not on the CISA KEV list, and there is no indication of exploitation in the wild.

What to do: Apply your distribution's PackageKit security update as soon as it is released (Fedora and RHEL 10 family advisories) and confirm the patched build is installed. Until then, restrict unprivileged local shell accounts on hosts where PackageKit uses the dnf5 backend (verify with 'pkcon backend-detail'), and review dnf history, PackageKit transaction logs, and journald entries for unexpected package removals by non-admin users.

Affected
PackageKit project (freedesktop.org) PackageKit with the dnf5 backend
Estimated exposure
mass≈1–3 million systems run PackageKit with the dnf5 backend, with practical exposure limited to multi-user hosts that grant unprivileged local accounts — dnf5 is the default package stack on Fedora 41+ and the RHEL 10/CentOS/Alma/Rocky 10 family, and these distributions collectively have on the order of millions of desktops, workstations, and servers, though no vendor install counts are…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

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.

Weakness
CWE-863
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H

In the news

No ingested article mentions this CVE yet.