← All issues

[21] [WebKit] Add webcontent_sandbox_entitlements to Mac Catalyst variant

Severity: Low | Component: WebKit build-time entitlements | 3f1ad2f

diff에서 webcontent_sandbox_entitlementsmaccatalyst_process_webcontent_shared_entitlements에 추가된 사실을 근거로 Low로 평가됩니다. 패치 이전에는 Catalyst에서 실행되는 모든 WebContent process가 권한이 없는 sandbox state flag를 변경하려 시도했습니다. 이 과정에서 kernel 또는 sandboxd에 의해 강제 종료되었고, embedded content가 로드되지 않는 현상으로 이어졌습니다.

공유 helper가 Mac Catalyst 경로에 연결되었습니다. Runtime 코드 변경은 없습니다.

Source/WebKit/Scripts/process-entitlements.sh

maccatalyst_process_webcontent_shared_entitlements()
{
+ webcontent_sandbox_entitlements
...
}

Mac Catalyst sandbox 강화 regression: entitlement 누락으로 인해 모든 WebContent process가 sandbox 초기화 중 강제 종료되었습니다.

Catalyst entitlement 경로가 빌드 시점에 기존 webcontent_sandbox_entitlements helper를 호출하도록 수정되었습니다.

BlockIOKitInWebContentSandbox, BlockUserInstalledFonts, EnableExperimentalSandbox 같은 sandbox state flag를 변경하려면 com.apple.private.security.mutable-state-flags 또는 enable-state-flags entitlement가 필요합니다. 해당 entitlement가 없으면 kernel 또는 sandboxd가 해당 작업을 거부하고, 호출 프로세스를 강제 종료합니다.

이러한 권한을 부여하는 공유 helper는 Mac 및 iOS WebContent variant에는 연결되어 있었지만, Catalyst variant에는 포함되지 않았습니다. 결과적으로 Catalyst에서 실행되는 모든 WebContent process(macOS의 News.app 등)가 권한 없이 state flag 변경을 시도했습니다. sandbox 초기화 중 crash가 발생했습니다.

🔒

Build-system divergence between platform variants and its impact on sandbox-hardening posture is examined in depth, with the reliability-vs-escape framing reasoned through.

더 확인하려면 구독해 주세요

🔒

Multiple reusable audit patterns for cross-variant entitlement drift and sandbox-hardening invariants, with concrete starting points in the WebKit build scripts.

더 확인하려면 구독해 주세요