
CVE-2026-43813: CloudAttestation enforceEnvironment बाईपास
enforceEnvironment बायपासPCC प्रमाणन इनपुट-सत्यापन बग का रिवर्स-इंजीनियर्ड विश्लेषण
जिसे Apple ने iOS 26.6 में भेजा था, जो CloudAttestation.dylib में पाया गया।
PCC.ComputeNodeValidator.policy.getter असत्यापित darwinInit डिक्शनरी से com.apple.CloudAttestation.environment बाइट पढ़ता है, जो AttestationBundle प्रोटोबफ के अंदर है, और उसे सीधे कॉलर को लौटाए गए NodeValidator.policy में डाल देता है।
26.6 फिक्स एक नया स्ट्रक्ट फ़ील्ड पेश करता है जो com.apple.CloudAttestation डोमेन में सिस्टम पॉलिसी कुंजी enforceEnvironment पर उस रीड को गेट करने वाला था — लेकिन वह फ़ील्ड 26.5 में कभी इनिशियलाइज़ नहीं हुआ था, इसलिए गेट प्रभावी रूप से अनुपस्थित था और एक क्राफ्टेड PCC प्रमाणन बंडल वैलिडेटर की पॉलिसी चेन में हमलावर द्वारा चुना गया environment मान सेट कर सकता था।
बाइट स्वयं कुछ भी अनलॉक नहीं करता — उसे EnvironmentPolicy.evaluate पास करने के लिए कॉलर द्वारा आपूर्ति किए गए expected पैरामीटर से मेल खाना होता है, और बाकी प्रोडक्शन पॉलिसी स्टैक (requireProdTrustAnchors, requireProdFusing, requireLockedCryptexes, 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 बीटा 4 (भेद्य) |
| 23G5065a | 23G5065a_CloudAttestation | 26.6 बीटा 5 (पैच किया गया) |
| — | 23G5065a_CloudAttestation_vs_23G5057c_CloudAttestation.BinDiff | इन दोनों के बीच का अंतर |
| प्रतीक | 23G5057c (भेद्य) | 23G5065a (पैच किया गया) |
|---|
PCC.ComputeNodeValidator.policy.getter | 0x235e16f5c (0x1c4) | 0x235e02fa8 (0x1dc) |
PCC.ComputeNodeValidator.init(proxyingAttestation:) | 0x235e15ca0 | 0x235e01bf4 |
Init enforceEnvironment lookup helper | (missing) | 0x235ed01cc |
DarwinInit.environment.getter | 0x235edc880 | same |