Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
POC-CVE-2025-6554 — Эксплойт для проверки концепции для CVE-2025-6554, уязвимость движка V8 JavaScript, позволяющая несанкционированный доступ к неинициализированным значениям 'Hole' через опциональную цепочку, что приводит к путанице типов и манипуляции памятью. | Kitploit
Инструменты/GitHubGitHub/ghostn4444/poc-cve-2025-6554
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийСтатьи и ИсследованияОбучение и ОбразованиеЭксплуатация Бинарных Файлов
GitHubghostn4444/poc-cve-2025-6554

POC-CVE-2025-6554

Эксплойт для проверки концепции для CVE-2025-6554, уязвимость движка V8 JavaScript, позволяющая несанкционированный доступ к неинициализированным значениям 'Hole' через опциональную цепочку, что приводит к путанице типов и манипуляции памятью.

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Репозиторий
111 год назадЕщё не проверено

CVE-2025-6554

CVE-2025-6554 — это уязвимость в интерпретаторе V8 (движок JavaScript) браузера Chrome, связанная с неадекватной проверкой "дыр" (Hole Check) в непредназначенных переменных внутри выражений с опциональной цепочкой (optional chaining). POC (CVE-2025-6554-POC.JS) исследует недостаток механизма проверки "дыр" (Hole) в переменных перед их использованием, что позволяет читать неинициализированные значения — поведение, обычно блокируемое ссылочной ошибкой.

root@kitploit:~
function leak_hole() {
    let x;
    delete x?.[y]?.a;
    return y;
    let y;
}
function pwn() {
    let hole = leak_hole();
    %DebugPrint(hole);
}
pwn();

Техническое объяснение

1. Структура уязвимого кода

let x; и let y; объявляют переменные локальной области видимости. Строка delete x?.[y]?.a использует опциональную цепочку для безопасного доступа к вложенному свойству. Проблема: переменная y используется до её объявления, что должно вызывать ссылочную ошибку, но в предварительной версии V8 это происходило молча, позволяя захватить специальное значение, называемое "The Hole" (страж для переменных в TDZ — временной мёртвой зоне). Оператор return y; в коде не должен быть доступен, так как y всё ещё находится в TDZ. Но сбой позволяет это.

2. Поведение до патча

Механизм, предотвращающий доступ к переменным в TDZ, — это ThrowReferenceErrorIfHole. До патча этот механизм вызывался только один раз во время delete x?.[y]?. V8 внутренне отмечал, что переменная y уже была проверена как "не являющаяся дырой", но эта проверка выходила за пределы контролируемой области, и поэтому не переоценивалась во время return y.

3. Что было исправлено

Патч добавляет ещё один обязательный вызов ThrowReferenceErrorIfHole при return y, гарантируя, что любая попытка доступа к y до её объявления корректно вызовет ошибку. Эта проверка была обеспечена областью видимости OilpanCheckEtscope, которая была включена во все вызовы OptionalChainNullLabelScope.

Схема атаки

root@kitploit:~
delete x?.[y]?. → Попытка доступа к y (неинициализирован) → Сбой проверки "Hole" 
→ y утекает как значение → return y; → Захват значения "Hole" → DebugPrint раскрывает

Атакующий, захватывая это значение "Hole", может сделать выводы о внутреннем состоянии движка V8, что облегчает такие атаки, как:

  • Путаница типов (Type Confusion)

  • Манипуляция стеком (Stack Manipulation)

  • Обход проверок области видимости (Scope Check Circumvention)

Скачать инструмент