Register for the AI for Security Summit: Join Figma, Perplexity & Wiz

CVE-2026-19816
Linux Debian vulnerability analysis and mitigation

Overview

CVE-2026-19816 is an incorrect authorization vulnerability in PackageKit's dnf5 backend that allows an unprivileged local user to uninstall packages without polkit authorization. The flaw exists in PackageKit versions 1.3.4 through 1.3.6, and was fixed in v1.4.0. It was reported by Vivek Parikh of BreachX Zero Day Labs, disclosed on September 9, 2026, and carries a CVSS v3.1 base score of 7.1 (High) (Red Hat CVE, GitHub Advisory). Red Hat Enterprise Linux is not affected as it ships PackageKit 1.2.x with the classic dnf backend (Red Hat CVE).

Technical details

The root cause is CWE-863 (Incorrect Authorization): PackageKit's daemon intentionally skips polkit authorization for transactions flagged as SIMULATE (dry-run), but the dnf5 backend's dnf5_repo_thread() function contains a logic error in its guard condition — (role == REPO_REMOVE || !SIMULATE) — which is always true inside the REPO_REMOVE branch, causing trans.download() and trans.run() to execute unconditionally regardless of the SIMULATE flag (GitHub Advisory, Red Hat Bugzilla). An attacker exploits this by invoking the RepoRemove D-Bus method with the PK_TRANSACTION_FLAG_ENUM_SIMULATE flag set, bypassing the polkit prompt entirely while triggering a real package removal (GitHub Advisory). The fix in commit 33be77b restructures the guard to explicitly return early when SIMULATE or ONLY_DOWNLOAD flags are set, preventing any system modification (GitHub Commit).

Impact

Successful exploitation allows any unprivileged local user to remove RPM packages from the system without authentication, bypassing polkit's authorization framework entirely. With autoremove=true, an attacker can remove all packages installed from a targeted repository and its sibling repo IDs sharing the same .repo file, potentially destabilizing critical system components. The vulnerability has high integrity and availability impact — it can be used to sabotage system functionality or remove security-relevant packages — but does not provide arbitrary package installation, code execution as root, or direct data exfiltration (Red Hat CVE, GitHub Advisory).

Exploitability

A proof-of-concept (PoC) exploit using Python's dbus-python/PyGObject libraries is publicly available in the GitHub Security Advisory, demonstrating exploitation via the org.freedesktop.PackageKit.Transaction.RepoRemove D-Bus method with the SIMULATE flag (GitHub Advisory). Exploitation requires only low privileges (local user access) and no user interaction, making it straightforward for any local attacker on an affected Fedora system. No in-the-wild exploitation or threat actor attribution has been reported as of the disclosure date, and the CVE is not listed in the CISA KEV catalog. The vulnerability was discovered using Typhon AI Mil v2 by Vivek Parikh of BreachX Zero Day Labs (Red Hat CVE).

Exploitation steps

  1. Verify backend: Confirm the target system uses the dnf5 backend by running busctl get-property org.freedesktop.PackageKit /org/freedesktop/PackageKit org.freedesktop.PackageKit BackendName — the output must be dnf5.
  2. Identify target repository: Determine the repo_id of the repository whose packages you wish to remove (e.g., via pkcon repo-list).
  3. Craft D-Bus call: Using Python with dbus-python/PyGObject, connect to the system D-Bus and call org.freedesktop.PackageKit.CreateTransaction() to obtain a transaction object path.
  4. Set SIMULATE flag and invoke RepoRemove: Call ti.RepoRemove(dbus.UInt64(SIMULATE), "TARGET_REPO_ID", True) where SIMULATE = 1 << 2 (value 4). The daemon skips polkit authorization because the SIMULATE flag is set.
  5. Trigger real uninstall: Despite the SIMULATE flag, the vulnerable dnf5 backend executes trans.download() and trans.run(), performing a real package removal with root privileges and no polkit prompt.
  6. Confirm removal: Verify that the targeted packages have been uninstalled (e.g., rpm -q <package>) — the system is modified without any authorization challenge (GitHub Advisory).

Indicators of compromise

  • Logs: D-Bus system logs (e.g., /var/log/messages or journalctl) showing org.freedesktop.PackageKit RepoRemove calls from unprivileged users without a corresponding polkit authorization event; PackageKit daemon logs showing Starting transaction download... and Starting transaction execution... for a SIMULATE-flagged transaction.
  • System: Unexpected package removals detectable via rpm -Va or package manager history (dnf history); missing .repo files in /etc/yum.repos.d/ or removed packages that were not explicitly uninstalled by an administrator.
  • Process: Unusual invocations of pkcon or D-Bus calls to org.freedesktop.PackageKit from non-root, non-admin user sessions, particularly with the RepoRemove method and autoremove=true.

Mitigation and workarounds

Upgrade PackageKit to version 1.4.0 or later, which contains the fix in commit 33be77b that correctly handles the SIMULATE flag in the dnf5 RepoRemove handler (GitHub Commit, GitHub Advisory). Red Hat Enterprise Linux users are not affected and do not need to take action (Red Hat CVE). As a temporary workaround on affected Fedora systems, administrators can restrict D-Bus access to the PackageKit service for unprivileged users via polkit rules, or disable the PackageKit daemon if package management by non-admin users is not required.

Community reactions

Red Hat Product Security coordinated the disclosure and confirmed that RHEL is not affected due to its use of the classic dnf backend (Red Hat CVE). The vulnerability was discovered using AI-assisted security tooling (Typhon AI Mil v2) by BreachX Zero Day Labs, which is notable as an example of AI-aided vulnerability research (GitHub Advisory). No significant broader media coverage or social media discussion has been identified at this time.

Additional resources

Linux Distribution fix status

Fix availability across major Linux distributions and their releases.

Debian

Fixed

bookworm

packagekit

Affected

sid

packagekit: 1.4.0-1

Fixed

trixie

packagekit

Affected

Ubuntu

Unknown

bionic (esm-infra)

packagekit

Unknown

devel

packagekit

Unknown

focal (esm-infra)

packagekit

Unknown

jammy

packagekit

Unknown

noble

packagekit

Unknown

resolute

packagekit

Unknown

xenial (esm-infra-legacy)

packagekit

Unknown

RHEL / CentOS

Affected

RHEL 8

Not Affected

RHEL 9

PackageKit.src

Affected

RHEL 10

PackageKit.src

Affected

SourceThis report was generated using AI

Related Linux Debian vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-61721HIGH8
  • Linux Debian logoLinux Debian
  • fluidsynth
NoYesSep 18, 2026
CVE-2026-61714HIGH7.8
  • Linux Debian logoLinux Debian
  • fluidsynth
NoYesSep 18, 2026
CVE-2026-61723MEDIUM6.8
  • Linux Debian logoLinux Debian
  • fluidsynth
NoYesSep 18, 2026
CVE-2026-61722MEDIUM6.8
  • Linux Debian logoLinux Debian
  • fluidsynth
NoYesSep 18, 2026
CVE-2026-61720MEDIUM6.2
  • Linux Debian logoLinux Debian
  • fluidsynth
NoYesSep 18, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management