Apple & macOS security
App Sandbox, TCC, entitlements, XPC, Endpoint Security, and shared container boundaries across macOS, iOS, and WebKit.
Start here, then go deeper.
Begin with executable and entitlement boundaries, compare shared authority on macOS and iOS, then move into named Apple vulnerability research without collapsing every platform into one threat model.
- 01macOS authorityThe App Was Sandboxed. The XPC Boundary Still Needed Authorization.20 min ↗
A macOS app can be sandboxed while a separate helper, launch agent, or launch daemon holds different authority. A defensible review maps every executable, entitlement, XPC peer, operation, and effect instead of treating the app bundle as one security boundary.
- 02macOS consentThe Permission Was Granted. The Data Use Still Needed a Policy.11 min ↗
TCC can authorize a macOS process to reach a protected resource, but consent is not a standing business authorization. A defensible review follows the prompt, responsible code identity, returned capability, downstream use, retention, logging, and revocation.
- 03macOS persistenceThe Helper Was Registered. Its Lifetime Outlived the App.11 min ↗
A macOS login item, launch agent, or launch daemon can remain active after the visible app exits. A defensible review separates packaging, registration, approval, launch domain, runtime authority, updates, failure recovery, and removal.
- 04macOS observabilityThe Event Was Visible. The Detection Still Needed Context.11 min ↗
Endpoint Security can deliver macOS authorization requests and event notifications, but an event is not yet a verdict. A defensible design preserves timing, sequence gaps, process identity, policy version, privacy, outcome, and the resulting system effect.
- 05iOS shared authorityThe Extension Was Sandboxed. The Shared Container Still Crossed the Boundary.16 min ↗
An iOS app and its extensions run in separate containers, but App Groups and Keychain access groups deliberately reconnect them. A defensible review follows each entitlement, producer, shared object, lifecycle transition, and privileged consumer instead of treating code signing as authorization.
- 06WebKit sandbox escapeCVE-2025-24201: How Web Content Reached an Unneeded GPU State9 min ↗
A reader-first reconstruction of Apple's CVE-2025-24201 WebKit fix: what the sandbox-escape advisory says, what primitive restart means, and what the public patch proves without inventing the private exploit chain.
- 07WebKit origin boundaryCVE-2025-31205: How a Detached Stylesheet Exposed Cross-Origin Data10 min ↗
A reader-first analysis of CVE-2025-31205: how JavaScript kept a cross-origin stylesheet alive after detachment, why WebKit treated missing ownership as permission, and how the fix fails closed.
Every matching record.
Methods and named-vulnerability research remain visually and editorially separate.
Field notes 6
The Event Was Visible. The Detection Still Needed Context.
Endpoint Security can deliver macOS authorization requests and event notifications, but an event is not yet a verdict. A defensible design preserves timing, sequence gaps, process identity, policy version, privacy, outcome, and the resulting system effect.
11 min read ↗Pentest · Sep 6, 2026The Helper Was Registered. Its Lifetime Outlived the App.
A macOS login item, launch agent, or launch daemon can remain active after the visible app exits. A defensible review separates packaging, registration, approval, launch domain, runtime authority, updates, failure recovery, and removal.
11 min read ↗Pentest · Sep 5, 2026The Permission Was Granted. The Data Use Still Needed a Policy.
TCC can authorize a macOS process to reach a protected resource, but consent is not a standing business authorization. A defensible review follows the prompt, responsible code identity, returned capability, downstream use, retention, logging, and revocation.
11 min read ↗Pentest · Sep 4, 2026The Extension Was Sandboxed. The Shared Container Still Crossed the Boundary.
An iOS app and its extensions run in separate containers, but App Groups and Keychain access groups deliberately reconnect them. A defensible review follows each entitlement, producer, shared object, lifecycle transition, and privileged consumer instead of treating code signing as authorization.
16 min read ↗Pentest · Sep 3, 2026The App Was Sandboxed. The XPC Boundary Still Needed Authorization.
A macOS app can be sandboxed while a separate helper, launch agent, or launch daemon holds different authority. A defensible review maps every executable, entitlement, XPC peer, operation, and effect instead of treating the app bundle as one security boundary.
20 min read ↗Vulnerability Research · Aug 31, 2026Three False Alarms in a Privileged Helper Sweep
Seven third-party helpers run as root on this Mac. I checked whether each one authenticates the process talking to it, was wrong three times in a row, and found nothing. The interesting part is why each cheap method failed.
9 min read ↗CVE research 2
CVE-2025-31205: How a Detached Stylesheet Exposed Cross-Origin Data
A reader-first analysis of CVE-2025-31205: how JavaScript kept a cross-origin stylesheet alive after detachment, why WebKit treated missing ownership as permission, and how the fix fails closed.
10 min read ↗CVE-2025-24201 · Static ReproductionCVE-2025-24201: How Web Content Reached an Unneeded GPU State
A reader-first reconstruction of Apple's CVE-2025-24201 WebKit fix: what the sandbox-escape advisory says, what primitive restart means, and what the public patch proves without inventing the private exploit chain.
9 min read ↗