Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-94300 — PoC autocontenido y análisis para CVE-2026-94300, un use-after-free de GSS-TSIG en BIND 9.20.29, con un modelo asistido por depurador de la cadena de fuga a ejecución de código. | Kitploit
Herramientas/GitHubGitHub/ibonok/cve-2026-94300
Forensia de MemoriaAnálisis de VulnerabilidadesExplotaciónDepuradoresPapers e InvestigaciónAnálisis de DNSExplotación de Binarios
GitHubibonok/cve-2026-94300

CVE-2026-94300

PoC autocontenido y análisis para CVE-2026-94300, un use-after-free de GSS-TSIG en BIND 9.20.29, con un modelo asistido por depurador de la cadena de fuga a ejecución de código.

Ver Repositorio
4hace 14 díasAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2026-94300 — PoC: fuga (docker logs) → RCE del modelo

Nota: Este análisis y PoC se produjeron en gran medida con asistencia de IA ("AI patchwork"). Cada afirmación sobre código, diff y mediciones debe verificarse contra las fuentes citadas antes de confiar en ella.

Carpeta PoC autocontenida para la cadena de explotación de CVE-2026-94300 (BIND 9.20.29 con GSS-TSIG, krb5 1.20.1, jemalloc 5.3.0).

Lo que se demuestra aquí: un conjunto de direcciones filtrado (aquí desde gdb) basta para construir ejecución de código en el proceso named a partir de las primitivas medidas. El exploit consume la fuga de docker logs; no contiene literales de direcciones.

Lo que es explícitamente un modelo aquí (y así se declara en el informe):

SuposiciónMotivo
Fuga desde gdbEl CVE no tiene primitiva de fuga de información; una fuga real tendría que provenir de otro bug
ASLR desactivado (setarch -R)sin una fuga no hay direcciones de heap/código
Control del contenido del objeto inyectado vía gdbla recuperación del slot de 8 bytes liberado no tuvo éxito en la ruta real con los medios examinados aquí (4,7M intentos, 0 aciertos) — un obstáculo documentado, no una prueba de imposibilidad

No hay RCE remoto demostrado ni persistencia. El comando se proporciona mediante --cmd en el exploit: host/exploit.py lo entrega a través del canal de control de Docker (docker exec, la misma autoridad que el operador ya posee) hacia el contenedor; el exploit en sí envía solo las direcciones filtradas y el paquete capturado. El payload además escribe la línea RCE-PROOF (para verificación) y termina named.

Arquitectura

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

Archivos

RutaPropósito
docker/DockerfileImagen víctima: BIND 9.20.29 del tarball de ISC + gdb + KDC + drivers del laboratorio
etc/krb5.conf, kdc.conf, named.conf, zona (copiados a /etc por la imagen)
host/exploit.pyExploit del host: lee docker logs, valida, reproduce por UDP, comprueba el marcador
lab/rce_victim.shDriver dentro del contenedor: named bajo gdb, captura sin envío, fuga, espera
lab/rce_model.pyModelo gdb: puntos de interrupción, bloque de fuga, armado, observación del despacho
lab/rce_leak.pyEtapa de fuga: direcciones + wire_b64 → stdout/archivo
lab/rce_exploit.pyEtapa de exploit en el contenedor: construye el objeto falso a partir de la fuga, reclama, despacha
lab/rce_shim.cShim de página fija: tabla falsa, plantilla falsa de dns_db_t, payload
lab/replay-lab.pyCaptura TKEY (--no-send)
lab/gss_context_lab.pyAuxiliar de contexto GSS para la captura
lab/start.sh, lab/named.replay.confArranque de KDC/keytab/zona, configuración de named
RACE.mdExplicación de la carrera sobre el contexto GSS-TSIG compartido: compartición, accesos, disparador, mediciones, alcance
VERIFY.mdVerificación de las tres afirmaciones contra el diff del código fuente 9.20.29 → 9.20.30 (bloqueo de GSS-TSIG, volcado destructivo del keyring, alcance del RCE)
EXPLOIT.mdDescripción del exploit con evidencia en el código y Mermaid
USAGE.mdCompilación, ejecución, salidas esperadas, resolución de problemas
ANAYLSE.mdAdenda de divulgación lista para publicación (conciliación del impacto DoS vs. potencial RCE, versiones afectadas, mitigación, detección) — sin primitivas de exploit
ANALYZE.mdVersión en inglés de la adenda de divulgación

(Este archivo es README.md; los demás documentos del PoC también existen como RACE.md, VERIFY.md, EXPLOIT.md, USAGE.md.)

Requisitos previos

Solo Docker + internet en el momento de la compilación. La imagen compila BIND 9.20.29 por sí misma a partir del tarball oficial de ISC (https://downloads.isc.org/isc/bind9/9.20.29/bind-9.20.29.tar.xz, SHA-256 fijado), con --with-gssapi=yes, e instala gdb, el KDC de MIT Kerberos y los drivers del laboratorio. No se necesita BIND de la distro ni una imagen base precompilada.

La imagen contiene una identidad KDC desechable [email protected] (contraseña attacker, realm EXAMPLE.TEST, KDC en 127.0.0.1:88 solo dentro del contenedor) — exclusivamente para este laboratorio, no para pruebas de GSS-TSIG contra otros servidores; no extraiga el keytab del contenedor.

Inicio rápido

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) …

Esperado (extracto):

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

Clasificación

Frase de advertencia: ISC clasifica CVE-2026-94300 como remoto, Alto, CVSS 8.1 (AC:H) con potencial ejecución de código. Lo que está establecido de forma pública/reproducible es una corrupción de memoria sin credenciales y desencadenada por repetición (use-after-free/double-free) sobre el contexto GSS-TSIG compartido — clase DoS a corrupción de heap. Una ruta hacia la ejecución de código solo se ha mostrado hasta ahora bajo supuestos de modelo asistidos por depurador (ASLR desactivado, direcciones/contenidos de objetos inyectados); no existe un RCE remoto demostrado.

Establecido: dado un leak, el RCE se sigue en el proceso objetivo. No establecido: un ataque remoto sin un leak y sin gdb — la primitiva de fuga de información y el paso de reclamación logrado faltan para ello. Este es un conjunto documentado de obstáculos, no una prueba de imposibilidad; ISC clasifica la clase de ejecución de código como potencial. La base del código (bug de sincronización, volcado destructivo, qué corrige el parche y qué no) se verifica en VERIFY.md contra el diff de los dos árboles; cómo funciona técnicamente la carrera está en RACE.md. Detalles del exploit y evidencia del código: EXPLOIT.md, ejecución y opciones: USAGE.md. Divulgación lista para publicación: ANALYZE.md.

Descargar herramienta