Description
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.
Published: 2026-08-31
Score: 7.3 High
EPSS: < 1% Very Low
KEV: No
Impact: Local privilege escalation via polkit authorization bypass
Action: Patch Immediately
AI Analysis

Impact

The vulnerability lies in the zbus_polkit crate’s handling of user identifiers. The function that creates a polkit subject encodes the Unix UID as an unsigned 32‑bit integer while the PolicyKit specification requires a signed integer. This type mismatch (CWE‑686) causes the authorization daemon to discard the supplied UID and instead resolve the caller’s identity by looking up the process ID in /proc. The lookup is subject to a time‑of‑check/time‑of‑use race (CWE‑367), and based on the description, it is inferred that an attacker would need to force a privileged process to exit and then quickly spawn a new process that receives the same PID, enabling a local attacker to subvert the authorization.

Affected Systems

Affected systems are those that ship or reference the z-galaxy zbus_polkit crate at versions below 5.1.0. Based on the description, it is inferred that services such as systemd, desktop environments, or any application that relies on PolicyKit for authorization and uses this crate are notable targets.

Risk and Exploitability

The vulnerability is limited to systems running a version of zbus_polkit older than 5.1.0 and requires the presence of the vulnerable library in a process that calls Subject::new_for_owner. The likely attack vector is local, needing an attacker to cause a privileged process to terminate and quickly spawn a new process with the same PID, as inferred from the race condition described. The CVSS score of 7.3 reflects the high potential impact if the conditions are met. The vulnerability is not listed in the CISA KEV catalog, indicating it has not yet been widely exploited. Because the attack exploits a race condition that is technically challenging to orchestrate, the immediate likelihood of exploitation is moderate, as inferred from the description. Once the vulnerability is discovered by attackers, the impact is significant, as the bypass grants unauthorized local privilege escalation. Administrators should treat it as a high‑risk local privilege escalation and apply the patch promptly.

Generated by OpenCVE AI on August 31, 2026 at 16:50 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the zbus_polkit crate to version 5.1.0 or newer.
  • Restart any services and applications that depend on zbus_polkit so they load the updated library.
  • Review and tighten local process kill permissions (e.g., via AppArmor, SELinux, or container isolation) to prevent unprivileged users from terminating privileged processes and winning the PID reuse race.

Generated by OpenCVE AI on August 31, 2026 at 16:50 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 01 Sep 2026 15:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Tue, 01 Sep 2026 12:15:00 +0000

Type Values Removed Values Added
References
Metrics threat_severity

None

cvssV3_1

{'score': 7.0, 'vector': 'CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H'}

threat_severity

Important


Mon, 31 Aug 2026 21:45:00 +0000

Type Values Removed Values Added
First Time appeared Z-galaxy
Z-galaxy zbus Polkit
Vendors & Products Z-galaxy
Z-galaxy zbus Polkit

Mon, 31 Aug 2026 14:30:00 +0000

Type Values Removed Values Added
Description 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.
Title zbus_polkit: polkit authorization bypass via PID reuse due to incorrect D-Bus type for the subject UID
Weaknesses CWE-367
CWE-686
References
Metrics cvssV4_0

{'score': 7.3, 'vector': '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'}


Subscriptions

Z-galaxy Zbus Polkit
cve-icon MITRE

Status: PUBLISHED

Assigner: suse

Published:

Updated: 2026-09-01T14:46:42.303Z

Reserved: 2026-08-24T15:33:13.664Z

Link: CVE-2026-78422

cve-icon Vulnrichment

Updated: 2026-09-01T14:46:38.394Z

cve-icon NVD

Status : Awaiting Analysis

Published: 2026-08-31T15:17:58.910

Modified: 2026-09-01T20:54:51.287

Link: CVE-2026-78422

cve-icon Redhat

Severity : Important

Publid Date: 2026-08-31T14:14:13Z

Links: CVE-2026-78422 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-31T21:21:18Z

Weaknesses
  • CWE-367

    Time-of-check Time-of-use (TOCTOU) Race Condition

  • CWE-686

    Function Call With Incorrect Argument Type