/tools/macos-entitlement-evaluator
Apple Platform Security · Interactive Analyzer
Test the boundary. Verify the requirement. Explore how PID reuse, missing Team ID anchors, and debugging entitlements compromise macOS inter-process communication. This evaluator runs 100% locally in your browser.
Boundary principles Audit Token + Team ID Anchor PID-based checks are race-condition prone Bundle ID without Team ID is spoofable get-task-allow breaks process isolation Hardened Runtime blocks dylib injection Interactive policy
Boundary configuration Boundary verdict VULNERABLE
PID Reuse Race Condition (CWE-362) CVE-2020-9839 / CVE-2023-32364 Class The receiver uses the caller's process ID (PID) to verify identity. Process IDs are non-cryptographic and reusable. An attacker can fork a target binary, wait for PID rollover, and establish an unauthorized XPC session before the helper validates the peer.
Root-cause factors PIDs wrap around and can be recycled within seconds under process fork churn. A process can execve() an attacker payload after establishing or during connection handshake. audit_token_t must be used instead of pid_t to capture a cryptographic security token. Defensible SecRequirement implementation // In Swift / Objective-C:
xpc_connection_get_audit_token(connection, &token);
SecRequirementCreateWithString("identifier \"com.vendor.mainapp\" and anchor apple generic and certificate leaf[subject.OU] = \"TEAM_ID\"", ...);CLI verification command codesign -d -r- --entitlements - /Library/PrivilegedHelperTools/com.vendor.privilegedhelper