Skip to main content

zbus_polkit EUVDEUVD-2026-68593

| CVE-2026-78422 HIGH
Function Call With Incorrect Argument Type (CWE-686)
2026-08-31 suse GHSA-j48v-cvqq-xcv6
7.3
CVSS 4.0 · Vendor: suse
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Identify PID of polkit-authorized target process
  2. Delivery
    Trigger or await process termination
  3. Exploit
    Rapidly spawn processes to acquire freed PID
  4. Execution
    Application submits polkit authorization request via vulnerable zbus_polkit Subject
  5. Persist
    Polkit discards mistyped UID, resolves /proc entry to attacker's process
  6. Impact
    Attacker granted authorization intended for terminated process

Vulnerability Assessment

Weakness
CWE
Exploitation Conditions

The attacker must hold a local user account capable of spawning processes on the affected Linux system (PR:L per CVSS 4.0). The target application must be built with zbus_polkit prior to 5.1.0 and must invoke Subject::new_for_owner() to construct polkit subjects - only Rust applications using this specific crate in this manner are in scope. The attacker must additionally be able to cause a polkit-authorized process to terminate (through natural exit, an induced error condition, or any signal the attacker can deliver) and then win the Linux kernel's PID reassignment race by rapidly forking processes. This timing dependency (AT:P in CVSS 4.0) is the primary limiting factor: the race window may vary with system load but does not require any non-default kernel configuration - standard Linux PID recycling behavior is sufficient. Exploitation is strictly local; no network-accessible path exists (AV:L).

Impact

The CVSS 4.0 vector (AV:L/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H) accurately represents the threat profile: local access and low privileges are required, with a specific timing condition (AT:P - winning a PID reuse race) being the primary barrier to exploitation. The race is probabilistic but well-understood from prior polkit TOCTOU disclosures, and the fix being a one-line cast underscores that the vulnerability is structurally simple even if exploitation timing is constrained. EPSS data is absent from the input and this CVE does not appear in CISA KEV, so widespread or automated exploitation is not confirmed - the SSVC exploitation status would be rated 'none' at time of analysis. The high VC/VI/VA impact ratings reflect that a successful race grants full authorization as the targeted process, potentially including root-equivalent actions depending on what that process was authorized to perform. The trivial fix and the fact that the attack requires only a local foothold and ordinary timing skill argue strongly for treating this as an urgent patch priority.

Exploit ScenarioDerived

A local unprivileged attacker monitors the PID of a polkit-authorized process and, after it exits, rapidly spawns processes to acquire the same PID from the kernel's recycling pool. Because zbus_polkit encodes the UID with the wrong D-Bus type, polkit discards it and resolves identity from /proc - seeing the attacker's process now occupying the formerly privileged PID slot and granting the authorization originally intended for the terminated process. No public exploit code has been identified at time of analysis, but the TOCTOU technique is well-documented from prior Linux polkit research.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 31, 2026

Privilege escalation in zbus_polkit before 5.1.0 stems from Subject::new_for_owner() encoding the UID as D-Bus type u (unsigned 32-bit) rather than the type i (signed 32-bit) mandated by org.freedesktop.PolicyKit1.Authority, silently nullifying any caller-supplied UID and causing polkit to fall back to a TOCTOU-vulnerable /proc PID lookup. Applications that pass SO_PEERCRED-derived UIDs specifically to defend against PID reuse receive no benefit, as the value is discarded before polkit processes the authorization subject. A local low-privileged attacker who causes an authorized process to exit and wins the PID reassignment race is granted that process's polkit authorization; no public exploit code has been identified at time of analysis.

RemediationAI

Upgrade zbus_polkit to version 5.1.0 or later, which corrects the UID type encoding from D-Bus type u to the required type i; the one-line fix is visible in GitHub PR #101 at https://github.com/z-galaxy/zbus_polkit/pull/101. Note that the fix version (5.1.0) is stated in the CVE description but the PR merge status and tagged release on crates.io were not independently confirmed from the provided references - verify the release before pinning the version. If an immediate upgrade is not possible, applications should avoid relying on the UID value in polkit subjects built with this crate and accept that polkit will resolve caller identity only from /proc; mitigate the resulting TOCTOU exposure by tightening process supervision to reduce the window for PID reuse. Distribution-specific patches or backports may be available through SUSE channels at https://bugzilla.suse.com/show_bug.cgi?id=1277659.

Affected VersionsENISA

zbus_polkit 0 <5.1.0

Affected Packages

cargo zbus_polkit fix: 5.1.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in cargo

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The vulnerability resides in the zbus_polkit Rust crate (CPE: cpe:2.3:a:z-galaxy:zbus_polkit), which wraps D-Bus communication with the Linux polkit authorization framework. CWE-686 (Wrong Argument Type for Function) is the precise root cause: Subject::new_for_owner() serializes the unix-process subject's uid field using D-Bus type u (uint32) rather than the mandated type i (int32) from the org.freedesktop.PolicyKit1.Authority interface specification. When polkit receives a subject with a mistyped UID field, it silently discards the value and falls back to resolving the process owner directly from /proc using the supplied PID - a resolution that is inherently asynchronous with the authorization decision, creating a TOCTOU window. The upstream fix confirmed by the GitHub PR diff is a single cast - (uid as i32) - correcting the encoding to match the D-Bus interface contract and restoring the integrity of caller-supplied UIDs.

Know when Zbus Polkit gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (suse) PRIMARY 7.3 HIGH
CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
vuln.today AI 7.0 HIGH

Local-only attack (AV:L), race condition raises complexity (AC:H), low-privileged local account required (PR:L), impact confined to the vulnerable process context with no scope change.

3.1 AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
4.0 AV:L/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
SUSE MEDIUM
Red Hat 7.0 HIGH

Primary rating from Vendor (suse).

CVSS VectorVendor: suse

Attack Vector
Local
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

Subject::new_for_owner() in the zbus_polkit crate encodes the uid entry of a unix-process polkit subject as an unsigned 32-bit integer (D-Bus type u), whereas the org.freedesktop.PolicyKit1.Authority interface specifies a signed 32-bit integer (D-Bus type i). Because of this type mismatch, polkit silently discards the caller-supplied UID and instead determines the subject's owner itself by looking up the PID in /proc, a lookup that is inherently subject to a time-of-check/time-of-use race.

Consequently, an application that passes a UID obtained from a trustworthy source - for example SO_PEERCRED Unix socket peer credentials - in order to defend against PID reuse receives no protection, and the supplied UID has no effect on the authorization decision. A local unprivileged attacker who can cause an authorized process to terminate and then win the race to have their own process assigned the same PID can be authorized under the identity of the terminated process, bypassing the polkit authorization check and performing actions the attacker is not entitled to.

This issue affects zbus_polkit before 5.1.0.

Executive ViewAI

Why It Matters

zbus_polkit versions before 5.1.0 contain a privilege escalation vulnerability enabling local users to bypass authorization controls through a process ID race condition. An attacker can inherit elevated permissions intended for authorized processes by exploiting timing gaps in how PolicyKit validates caller credentials. Organizations managing Linux systems with PolicyKit-protected administrative functions face material risk of unauthorized access to sensitive operations.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.1%
Top 100% exploitable
Prevalence
Low
niche Rust crate for Linux polkit D-Bus integration
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment Vendor GitHub

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Small
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

36
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +36
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

Vendor StatusVendor

SUSE

Severity: Moderate

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy