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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-94300 — Автономный PoC и анализ для CVE-2026-94300 — use-after-free в GSS-TSIG в BIND 9.20.29, с моделью цепочки от утечки до выполнения кода, построенной с помощью отладчика. | Kitploit
Инструменты/GitHubGitHub/ibonok/cve-2026-94300
Криминалистика памятиАнализ уязвимостейЭксплуатацияОтладчикиСтатьи и ИсследованияАнализ DNSЭксплуатация Бинарных Файлов
GitHubibonok/cve-2026-94300

CVE-2026-94300

Автономный PoC и анализ для CVE-2026-94300 — use-after-free в GSS-TSIG в BIND 9.20.29, с моделью цепочки от утечки до выполнения кода, построенной с помощью отладчика.

Репозиторий
314 дней назадЕщё не проверено

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться

CVE-2026-94300 — PoC: утечка (docker logs) → RCE модели

Примечание: этот анализ и PoC были в значительной степени созданы с помощью ИИ («AI patchwork»). Каждое утверждение о коде, диффе и измерениях следует проверить по указанным источникам, прежде чем полагаться на него.

Самодостаточная папка PoC для цепочки эксплуатации CVE-2026-94300 (BIND 9.20.29 с GSS-TSIG, krb5 1.20.1, jemalloc 5.3.0).

Что здесь доказано: утёкшего набора адресов (здесь — из gdb) достаточно, чтобы построить выполнение кода в процессе named из измеренных примитивов. Эксплойт потребляет утечку из docker logs; он не содержит литералов адресов.

Что здесь явно является моделью (и заявлено как таковое в отчёте):

ДопущениеПричина
Утечка из gdbУ CVE нет примитива утечки информации; реальная утечка должна была бы происходить из другой ошибки
ASLR отключён (setarch -R)без утечки нет адресов кучи/кода
Управление содержимым объекта, внедрённое через gdbповторный захват освобождённого 8-байтового слота не удался в реальном пути с исследованными здесь средствами (4,7 млн попыток, 0 попаданий) — задокументированное препятствие, а не доказательство невозможности

Ни продемонстрированного удалённого RCE, ни персистентности. Команда передаётся через --cmd в эксплойте: host/exploit.py передаёт её по каналу управления Docker (docker exec, те же полномочия, которые уже есть у оператора) в контейнер; сам эксплойт отправляет только утёкшие адреса и захваченный пакет. Полезная нагрузка дополнительно записывает строку RCE-PROOF (для проверки) и завершает named.

Архитектура

sequenceDiagram
    participant R as Researcher (host)
    participant V as Container: named 9.20.29 + gdb
    participant L as docker logs
    R->>V: docker run -p 127.0.0.1:15353:53/udp
    V->>V: TKEY capture (no send), gdb breaks on dns_db_currentversion
    V->>L: LEAK: db=…, methods=…, heap=…, wire_b64=… (sha256)
    V->>V: model armed, waits for host replay
    R->>L: read docker logs + validate (11 checks)
    R->>V: docker exec: --cmd to /tmp/rce-payload-cmd
    R->>V: UDP replay of the leaked signed packet to 15353
    V->>V: krb5_k_free_key → free(db) → reclaim → fake dns_db_t
    V->>V: dns_db_currentversion → jmp *methods+0x30 → payload
    R->>V: docker exec cat /tmp/rce-proof

Файлы

ПутьНазначение
docker/DockerfileОбраз жертвы: BIND 9.20.29 из архива ISC + gdb + KDC + драйверы лаборатории
etc/krb5.conf, kdc.conf, named.conf, зона (копируются в /etc образом)
host/exploit.pyХост-эксплойт: читает docker logs, проверяет, воспроизводит по UDP, проверяет маркер
lab/rce_victim.shДрайвер внутри контейнера: named под gdb, захват без отправки, утечка, ожидание
lab/rce_model.pyМодель gdb: точки останова, блок утечки, взведение, наблюдение за диспетчеризацией
lab/rce_leak.pyЭтап утечки: адреса + wire_b64 → stdout/файл
lab/rce_exploit.pyЭтап эксплойта в контейнере: построение поддельного объекта из утечки, повторный захват, диспетчеризация
lab/rce_shim.cШим фиксированной страницы: поддельная таблица, поддельный шаблон dns_db_t, полезная нагрузка
lab/replay-lab.pyЗахват TKEY (--no-send)
lab/gss_context_lab.pyВспомогательный модуль GSS-контекста для захвата
lab/start.sh, lab/named.replay.confИнициализация KDC/keytab/зоны, конфигурация named
RACE.mdОбъяснение гонки на общем GSS-TSIG-контексте: совместное использование, обращения, триггер, измерения, область действия
VERIFY.mdПроверка трёх утверждений по диффу исходников 9.20.29 → 9.20.30 (блокировка GSS-TSIG, деструктивный дамп keyring, область действия RCE)
EXPLOIT.mdОписание эксплойта с доказательствами из кода и Mermaid
USAGE.mdСборка, запуск, ожидаемые результаты, устранение неполадок
ANAYLSE.mdДополнение к раскрытию, готовое к публикации (согласование воздействия DoS vs. потенциальный RCE, затронутые версии, смягчение, обнаружение) — без примитивов эксплойта
ANALYZE.mdАнглийская версия дополнения к раскрытию

(Этот файл — README.md; другие документы PoC также существуют как RACE.md, VERIFY.md, EXPLOIT.md, USAGE.md.)

Предварительные требования

Только Docker + интернет на этапе сборки. Образ собирает BIND 9.20.29 самостоятельно из официального архива ISC (https://downloads.isc.org/isc/bind9/9.20.29/bind-9.20.29.tar.xz, SHA-256 закреплён), с --with-gssapi=yes, и устанавливает gdb, MIT Kerberos KDC и драйверы лаборатории. Не требуется BIND из дистрибутива, не нужен предварительно собранный базовый образ.

Образ содержит одноразовую идентичность KDC [email protected] (пароль attacker, realm EXAMPLE.TEST, KDC на 127.0.0.1:88 только внутри контейнера) — исключительно для этой лаборатории, не для тестов GSS-TSIG против других серверов; не выносите keytab из контейнера.

Быстрый старт

cd poc/CVE-2026-94300-poc
docker build -f docker/Dockerfile -t cve-2026-94300-victim .

# Terminal 1: container
docker run --rm --name cve-2026-94300-victim \
    -p 127.0.0.1:15353:53/udp \
    --security-opt seccomp=unconfined \
    cve-2026-94300-victim            # prints the LEAK block to stdout

# Terminal 2: exploit from the host, target + command as arguments
python3 host/exploit.py --ip 127.0.0.1 --port 15353 --cmd 'id > /tmp/bla'
docker exec cve-2026-94300-victim cat /tmp/bla      # uid=0(root) …

Ожидаемый результат (фрагмент):

LEAK: db=0x7ffff6901c00
LEAK: db_methods=0x7ffff7c497c0
LEAK: payload=0x7ffff7fbe37b
LEAK: wire_len=3907
HOST-EXPLOIT-VALIDATE OK checks=11
HOST-EXPLOIT-REPLAY target=127.0.0.1:15353 bytes=3907
RCE-DISPATCH-INDIRECT target=0x7ffff7fbe37b (rce_payload) match=YES
RCE-PAYLOAD-EXECUTED RCE-PROOF pid=… uid=0 euid=0 db=0x7ffff6901c00
HOST-EXPLOIT-VERDICT payload_executed=YES marker=YES

Классификация

Пояснение к рекомендации: ISC оценивает CVE-2026-94300 как удалённую, High, CVSS 8.1 (AC:H) с потенциальным выполнением кода. Публично/воспроизводимо установлено повреждение памяти без учётных данных, запускаемое повторным воспроизведением (use-after-free/double-free) в общем контексте GSS-TSIG — класс от DoS до повреждения кучи. Путь к выполнению кода до сих пор показан только при допущениях модели с поддержкой отладчика (ASLR отключён, адреса/содержимое объектов внедрены); продемонстрированного удалённого RCE не существует.

Установлено: при наличии утечки RCE следует в целевом процессе. Не установлено: удалённая атака без утечки и без gdb — для этого отсутствуют примитив утечки информации и достигнутый шаг возврата памяти. Это документированный набор препятствий, а не доказательство невозможности; ISC относит класс выполнения кода к потенциальным. Кодовая база (ошибка синхронизации, деструктивный дамп, что исправляет патч и что нет) проверена в VERIFY.md по diff двух деревьев; как технически работает гонка — в RACE.md. Детали эксплойта и доказательства кода: EXPLOIT.md, выполнение и параметры: USAGE.md. Готовое к публикации раскрытие: ANALYZE.md.

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