Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain root on target macOS system
-
DeliveryQuery System Keychain for unprotected ECDSA signing key
-
ExploitCraft malicious ClearanceKit policy database content
-
ExecutionSign forged database with extracted key
-
PersistReplace /Library/Application Support/clearancekit/store.db
-
ImpactClearanceKit enforces attacker-controlled per-process access policies
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V13 - Configuration Permission assignment review
|
| Exploitation Conditions | Exploitation requires a process running as root on the target macOS system (PR:H, confirmed by CVSS vector). ClearanceKit must be installed and its system extension active, with the vulnerable ECDSA signing key already persisted in the macOS legacy System Keychain - a condition met by any deployment of versions prior to 5.0.10. The specific attack requirement (AT:P) is the macOS legacy System Keychain behavior that silently ignores kSecAttrAccess for kSecClassKey items; this is a platform-intrinsic condition present on all affected macOS versions where ClearanceKit runs. Access is local-only (AV:L); remote exploitation is not possible without a separate independent path to root. No user interaction is required once root is obtained (UI:N). The key limiting factor is the root prerequisite: this vulnerability does not enable privilege escalation to root and cannot be exploited from lower privilege levels. Exploitation is further limited to macOS environments where ClearanceKit is the active policy enforcement mechanism. |
| Impact | The CVSS 4.0 score of 6.9 (vector AV:L/AC:L/AT:P/PR:H/UI:N/VC:N/VI:H/VA:N/SC:H/SI:H/SA:N) accurately reflects a constrained but non-trivial risk profile. Local attack vector (AV:L) and high privilege requirement (PR:H) confirm that exploitation demands an already-rooted macOS system, meaning this vulnerability cannot be used for initial access or privilege escalation to root - it requires root as a prerequisite. AT:P indicates specific attack requirements: the macOS legacy System Keychain's kSecClassKey ACL-silencing behavior must be present, which is inherent to the platform on affected deployments. The subsequent system integrity and confidentiality impacts (SC:H/SI:H) are significant: a root attacker can silently replace the enforced access policy with arbitrary content, undermining the entire security guarantee ClearanceKit provides to the deployment. No CISA KEV listing and no public exploit are identified; EPSS data was not provided, so exploitation probability cannot be quantified. For organizations that have deployed ClearanceKit as a compensating control or compliance measure, the ability of any root process to silently subvert its policy enforcement is a critical trust-integrity failure, even if the raw CVSS score appears moderate. The constraint is real: this is not exploitable without root, making it a chaining vulnerability in attack scenarios rather than a standalone threat. |
| Exploit ScenarioDerived | An attacker with established root access on a macOS system running ClearanceKit prior to 5.0.10 retrieves the ECDSA private key directly from the System Keychain using standard Security framework APIs - no ACL challenge is raised because the key's access restriction was silently discarded when first persisted. The attacker signs a crafted policy database that whitelists unrestricted file-system access for a chosen malicious process, then replaces /Library/Application Support/clearancekit/store.db with the forged file; ClearanceKit validates the signature, accepts the database as authoritative, and begins enforcing attacker-defined policies transparently. No public exploit code is known, but the technique is operationally straightforward for any attacker already holding root with knowledge of macOS Security framework APIs. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 20, 2026
Policy signing key bypass in ClearanceKit prior to 5.0.10 permits any root process on macOS to forge valid signatures over arbitrary policy database content, granting full control over ClearanceKit's per-process file-system access enforcement plane. The root cause is a silent ACL failure specific to the macOS legacy System Keychain: ECDSA key items persisted via SecItemAdd silently lose their kSecAttrAccess restriction, leaving the signing key unrestricted to any root caller. No public exploit has been identified and no CISA KEV listing exists, but the integrity impact extends beyond the vulnerable component to the entire policy enforcement layer ClearanceKit provides.
RemediationAI
Upgrade to ClearanceKit version 5.0.10, which corrects the ECDSA signing key ACL assignment in the macOS System Keychain. The vendor advisory at https://github.com/craigjbass/clearancekit/security/advisories/GHSA-w254-hxm5-3hgh should be consulted for upgrade and key rotation guidance, as existing deployments may have already persisted the unprotected key and a reinstallation or key refresh may be required to fully remediate. No functional workarounds preserve policy enforcement integrity: the only partial mitigation is disabling the ClearanceKit system extension and manually removing the System Keychain item labelled 'clearancekit policy signing key', which eliminates the forged-signature attack path but also completely disables file-system access policy enforcement - trading integrity bypass risk for total loss of the security control. This mitigation is only appropriate as a temporary measure in environments where ClearanceKit is not a critical compensating control, and immediate upgrade to 5.0.10 remains the only complete remediation.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
ClearanceKit (CPE: cpe:2.3:a:craigjbass:clearancekit:*:*:*:*:*:*:*:*) is a macOS system extension that intercepts file-system access events and enforces per-process access control policies stored in a signed SQLite database at /Library/Application Support/clearancekit/store.db. The signing key is an ECDSA private key stored in the macOS legacy System Keychain, created via SecKeyCreateRandomKey and persisted with SecItemAdd. The vulnerability maps to CWE-732 (Incorrect Permission Assignment for Critical Resource): on macOS, SecItemAdd silently discards the kSecAttrAccess parameter when persisting kSecClassKey items to the legacy System Keychain, while correctly applying it for kSecClassGenericPassword items. The developer intended the key to be ACL-restricted, but the persisted key inherits no restriction, making it accessible to any root process via the standard Security framework APIs. This is a macOS platform-specific API behavioral inconsistency, not a general cryptographic design flaw in ClearanceKit.
Know when Clearancekit 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
CVSS:4.0/AV:L/AC:L/AT:P/PR:H/UI:N/VC:N/VI:H/VA:N/SC:H/SI:H/SA:N
Root required (PR:H) and local-only access (AV:L); scope changes (S:C) because forged policy subverts enforcement across all ClearanceKit-controlled processes system-wide.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
ClearanceKit intercepts file-system access events on macOS and enforces per-process access policies. The ECDSA private key used to sign the on-disk policy database (/Library/Application Support/clearancekit/store.db) is stored in the macOS System Keychain. The key was created via the two-step pattern SecKeyCreateRandomKey (in-memory) followed by SecItemAdd(kSecValueRef:, kSecAttrAccess:) (persist). Prior to version 5.0.10, for kSecClassKey items in the legacy System Keychain, kSecAttrAccess passed to SecItemAdd is silently ignored - the persisted key inherits no ACL restriction. The same access builder applied to kSecClassGenericPassword items correctly binds the ACL, making this bug specific to the EC key. The result is that any process running as root can use the key to produce valid signatures over arbitrary policy content. Version 5.0.10 fixes the issue. No known workarounds are available. Disabling the system extension and manually removing the System Keychain item labelled clearancekit policy signing key would prevent the forged-signature path but also disables policy enforcement.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
More in Clearancekit
View allClearanceKit 4.1 and earlier for macOS allows local authenticated users to completely bypass configured file access poli
ClearanceKit 5.0.4 and earlier allows local attackers with low-privilege accounts to bypass file-system access controls
Local authenticated attackers can bypass file access policies in ClearanceKit (macOS system extension) versions prior to
Local privilege escalation in ClearanceKit opfilter system extension allows root-level processes on macOS to completely
ClearanceKit's on-disk SQLite policy store on macOS is vulnerable to a replay attack that allows a high-privileged local
ClearanceKit for macOS prior to version 5.0.4-beta-1f46165 fails to validate destination paths in dual-path file operati
ClearanceKit on macOS fails to enforce managed and user-defined file-access policies during startup, allowing local proc
EUVD-2026-46113
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB