ClearanceKit: opfilter policy bypass via non-open file operations
ClearanceKit intercepts file-system access events on macOS and enforces per-process access policies. In versions on the 4.1 branch and earlier, the opfilter Endpoint Security system extension enforced file access policy exclusively by intercepting ES_EVENT_TYPE_AUTH_OPEN events. Seven additional file operation event types were not intercepted, allowing any locally running process to bypass the configured FAA policy without triggering a denial. Commit a3d1733 adds subscriptions for all seven event types and routes them through the existing FAA policy evaluator. AUTH_RENAME and AUTH_UNLINK additionally preserve XProtect change detection: events on the XProtect path are allowed and trigger the existing onXProtectChanged callback rather than being evaluated against user policy. All versions on the 4.2 branch contain the fix. No known workarounds are available.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-33631
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 5 Nov 2026, 06:06 UTC · Revision 1
Source evidence
ClearanceKit: opfilter policy bypass via non-open file operations
core-osv · Original sourcePublished 26 Mar 2026, 19:30 UTC
ClearanceKit intercepts file-system access events on macOS and enforces per-process access policies. In versions on the 4.1 branch and earlier, the opfilter Endpoint Security system extension enforced file access policy exclusively by intercepting ES_EVENT_TYPE_AUTH_OPEN events. Seven additional file operation event types were not intercepted, allowing any locally running process to bypass the configured FAA policy without triggering a denial. Commit a3d1733 adds subscriptions for all seven event types and routes them through the existing FAA policy evaluator. AUTH_RENAME and AUTH_UNLINK additionally preserve XProtect change detection: events on the XProtect path are allowed and trigger the existing onXProtectChanged callback rather than being evaluated against user policy. All versions on the 4.2 branch contain the fix. No known workarounds are available.
osv:CVE-2026-33631
Complete source record
{
"id": "71dab461e1d30b1851ca94cdb41488d819a3e4aaeeb7aec6529259289710cf40",
"url": "https://osv.dev/vulnerability/CVE-2026-33631",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "ClearanceKit: opfilter policy bypass via non-open file operations",
"summary": "ClearanceKit intercepts file-system access events on macOS and enforces per-process access policies. In versions on the 4.1 branch and earlier, the opfilter Endpoint Security system extension enforced file access policy exclusively by intercepting ES_EVENT_TYPE_AUTH_OPEN events. Seven additional file operation event types were not intercepted, allowing any locally running process to bypass the configured FAA policy without triggering a denial. Commit a3d1733 adds subscriptions for all seven event types and routes them through the existing FAA policy evaluator. AUTH_RENAME and AUTH_UNLINK additionally preserve XProtect change detection: events on the XProtect path are allowed and trigger the existing onXProtectChanged callback rather than being evaluated against user policy. All versions on the 4.2 branch contain the fix. No known workarounds are available.",
"evidence": "osv:CVE-2026-33631",
"products": [],
"severity": "high",
"structured": {
"id": "CVE-2026-33631",
"aliases": [
"CVE-2026-33631",
"GHSA-25f8-8cj2-m887"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:L"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/craigjbass/clearancekit",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "a3d1733d2691a0d40209c48b01bf9291bf645207"
}
],
"database_specific": {
"extracted_events": [
{
"range": [
{
"fixed": "a3d1733d2691a0d40209c48b01bf9291bf645207"
}
],
"source": "REFERENCES_COMMIT"
}
]
}
}
],
"versions": [
"v4.1-dfed70f",
"v4.1-8386ae0",
"v4.1-df4a170",
"v4.1-16a3e37",
"v4.1-6bcaabe",
"v4.1-fd5fab3",
"v4.1-3594f78",
"v4.1-981728f",
"v4.0-e2705e0",
"v4.0-2ccd30f",
"v4.0-b574aa3",
"v4.0-eca88d7",
"v4.0-3f01958",
"v4.0-db67c62",
"v4.0-5a0de89",
"v4.0-f8c9232",
"v4.0-c828d5e",
"v4.0-19126ba",
"v4.0-8fc8884",
"v3.3-9bb62a6",
"v3.2-9bb23fd",
"v3.1-34107d6",
"v3.1-9444cb6",
"v3.1-9ae9a1e",
"v3.1-1c065f7",
"v3.1-b616763",
"v3.1-56cf8aa",
"v3.1-bab7abf",
"v3.1-a563b4b",
"v3.1-2bc8773",
"v3.1-f48c585",
"v3.1-f9c7713",
"v3.1-def8687",
"v3.1-1480877",
"v3.1-962116d",
"v3.1-781fe68"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-33631.json"
}
}
],
"modified": "2026-10-28T02:30:42.932166939Z",
"provider": "osv",
"references": [
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/33xxx/CVE-2026-33631.json",
"https://github.com/craigjbass/clearancekit/security/advisories/GHSA-25f8-8cj2-m887",
"https://nvd.nist.gov/vuln/detail/CVE-2026-33631",
"https://github.com/craigjbass/clearancekit/commit/a3d1733d2691a0d40209c48b01bf9291bf645207"
],
"provider_metadata": {
"cwe_ids": [
"CWE-862"
],
"cna_assigner": "GitHub_M",
"unresolved_ranges": [
{
"extracted_events": [
{
"range": [
{
"fixed": "4.2"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
}
]
}
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/33xxx/CVE-2026-33631.json"
}
},
"related_cves": [
{
"value": "CVE-2026-33631",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 510909,
"published_at": "2026-03-26T19:30:30.379+00:00"
}