CVE-2026-41651: PackageKit vulnerable to TOCTOU Race on Transaction Flags leads to arbitrary package installation as root
PackageKit is a a D-Bus abstraction layer that allows the user to manage packages in a secure way using a cross-distro, cross-architecture API. PackageKit between and including versions 1.0.2 and 1.3.4 is vulnerable to a time-of-check time-of-use (TOCTOU) race condition on transaction flags that allows unprivileged users to install packages as root and thus leads to a local privilege escalation. This is patched in version 1.3.5.
A local unprivileged user can install arbitrary RPM packages as root, including executing RPM scriptlets, without authentication. The vulnerability is a TOCTOU race condition on `transaction->cached_transaction_flags` combined with a silent state-machine guard that discards illegal backward transitions while leaving corrupted flags in place. Three bugs exist in `src/pk-transaction.c`:
1. Unconditional flag overwrite (line 4036): `InstallFiles()` writes caller-supplied flags to `transaction->cached_transaction_flags` without checking whether the transaction has already been authorized/started. A second call blindly overwrites the flags even while the transaction is RUNNING.
2. Silent state-transition rejection (lines 873–882): `pk_transaction_set_state()` silently discards backward state transitions (e.g. `RUNNING` → `WAITING_FOR_AUTH`) but the flag overwrite at step 1 already happened. The transaction continues running with corrupted flags.
3. Late flag read at execution time (lines 2273–2277): The scheduler's idle callback reads cached_transaction_flags at dispatch time, not at authorization time. If flags were overwritten between authorization and execution, the backend sees the attacker's flags.
Security readout for executives and security teams
Plain-English summary
CVE-2026-41651 lets a local unprivileged Linux user abuse PackageKit to install packages with root privileges. That can turn ordinary local access into full system control, including package script execution. The disclosed affected range is PackageKit 1.0.2 through 1.3.4, with a fix in 1.3.5.
Executive priority
Treat this as a high-priority Linux privilege-escalation issue. It is not described as remotely exploitable, but any attacker with local user access could potentially gain root. Patch shared, developer, kiosk, and multi-user systems first.
Technical view
PackageKit has a TOCTOU race in transaction flags. InstallFiles() can overwrite cached_transaction_flags after authorization or start, pk_transaction_set_state() silently rejects illegal backward transitions, and the scheduler later reads the corrupted flags at execution time. The result is unauthorized root-level RPM installation, including scriptlets.
Likely exposure
Exposure is mainly Linux systems using PackageKit versions 1.0.2 through 1.3.4, especially multi-user endpoints, workstations, shared servers, and environments where low-privileged local accounts exist. Vendor backports may change the visible package version, so distribution advisories matter.
Exploitation context
The source bundle describes local privilege escalation requiring an unprivileged local user. It does not show CISA KEV listing or cited evidence of active exploitation. The impact is still serious because successful exploitation can lead to root-level package installation and code execution through package scripts.
Researcher notes
Key evidence centers on src/pk-transaction.c: flag overwrite in InstallFiles(), silent rejection of backward state changes, and late flag consumption by the scheduler. The bundle names RPM package installation and scriptlets, but does not provide KEV or active exploitation evidence.
Mitigation direction
Upgrade PackageKit to 1.3.5 or a vendor package containing the CVE fix.
Apply applicable Red Hat security advisories where those products are in scope.
Prioritize systems allowing local shell access by untrusted or lower-trust users.
Follow distribution vendor guidance for backported fixes and package-specific remediation.
Reduce unnecessary local accounts on affected Linux systems until patched.
Validation and detection
Inventory installed PackageKit versions across Linux endpoints and servers.
Flag systems running PackageKit 1.0.2 through 1.3.4 as potentially affected.
Confirm whether vendor packages backport the CVE-2026-41651 fix.
Review Red Hat CVE and errata applicability for managed RHEL systems.
Verify patched systems report PackageKit 1.3.5 or vendor-fixed builds.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cwe · low confidence lookup
CWE-367: Exact CWE lookup
Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
The CVE wording references privilege impact, so privilege escalation and authorization behavior review may help. This is a Glexia inferred lookup path, not an official MITRE, ATT&CK, or CVE Program mapping.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
2CVSS vectors
5Timeline events
3ADP providers
20Source links
SSVC decision data
CISA-ADPCISA Coordinator
Timestamp
Version
2.0.3
Exploitation: noneAutomatable: noTechnical Impact: total
CVSS vector scores
2 official scores
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.
CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.
CWE-367 · source CWE mapping
Time-of-check Time-of-use (TOCTOU) Race Condition
Time-of-check Time-of-use (TOCTOU) Race Condition represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.