## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-PWNTODAY-CVE-2025-6554
# CVE-2025-6554
root@kitploit:~
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" и использовать его для путаницы типов, манипуляций стеком или обхода областей видимости.