
CVE-2026-43813: CloudAttestation enforceEnvironmentバイパス
enforceEnvironment バイパスApple が iOS 26.6 として出荷し、CloudAttestation.dylib 内で発見された
PCC アテステーション入力検証バグのリバースエンジニアリング解析。
PCC.ComputeNodeValidator.policy.getter は、
AttestationBundle プロトブフ内の未検証の darwinInit ディクショナリから
com.apple.CloudAttestation.environment バイトを読み取り、
それを呼び出し元に返される NodeValidator.policy にそのまま流し込みます。
26.6 の修正では、その読み取りを
com.apple.CloudAttestation ドメインのシステムポリシーキー
enforceEnvironment で制限するための新しい構造体フィールドが導入されました — ただし、そのフィールドは 26.5 では
初期化されておらず、事実上ゲートが存在しなかったため、細工された
PCC アテステーションバンドルによって、攻撃者が選択した環境値を
バリデーターのポリシーチェーンに設定できました。
このバイト自体は単独では何も解除しません。EnvironmentPolicy.evaluate を
通過するには呼び出し元が指定した expected パラメータと一致する必要があり、
残りの本番ポリシースタック(requireProdTrustAnchors、
requireProdFusing、requireProdLockedCryptexes、restrictDeveloperMode、
strictCertificateValidation、transparencyProofValidation、
ensembleTopologyValidation)は os_policy_lookup から読み取られ、
バンドルからは読み取られません。
IDA データベース (.i64)、BinExport ダンプ、その他の中間ビルドは
gitignore されています。
修正済みペアの Bindiff 類似度: 0.68。
CVE-2026-43813.txt — 元の CVE 説明 (VulDB からの原文)releases.txt — ビルド ID の時系列順リストこの調査は MiniMax-M3 による支援を大きく受けています。 ライトアップを読む際はその点を念頭に置いてください。この分析は一切 独立して検証されておらず、引用されている逆コンパイル結果、アドレス、 類似度スコアは、いずれも使用前に再確認すべきです。
| ビルド | パス | 役割 |
|---|
| 23G5057c | 23G5057c_CloudAttestation | 26.6 beta 4 (脆弱) |
| 23G5065a | 23G5065a_CloudAttestation | 26.6 beta 5 (修正済み) |
| — | 23G5065a_CloudAttestation_vs_23G5057c_CloudAttestation.BinDiff | 両者の差分 |
| シンボル | 23G5057c (脆弱) | 23G5065a (修正済み) |
|---|
PCC.ComputeNodeValidator.policy.getter | 0x235e16f5c (0x1c4) | 0x235e02fa8 (0x1dc) |
PCC.ComputeNodeValidator.init(proxyingAttestation:) | 0x235e15ca0 | 0x235e01bf4 |
enforceEnvironment ルックアップヘルパーの init | (存在しない) | 0x235ed01cc |
DarwinInit.environment.getter | 0x235edc880 | 同じ |