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
tcp2kaslr — CVE-2026-98432: un servidor TCP IPv4 simple es vulnerable, MPTCP no es el desencadenante. Desencadenante del fallo, evidencia y análisis. | Kitploit
Herramientas/GitHubGitHub/offline-ant/tcp2kaslr
Forensia de MemoriaAnálisis de VulnerabilidadesExplotaciónFuzzingPapers e InvestigaciónLabs y Práctica
GitHuboffline-ant/tcp2kaslr

tcp2kaslr

CVE-2026-98432: un servidor TCP IPv4 simple es vulnerable, MPTCP no es el desencadenante. Desencadenante del fallo, evidencia y análisis.

Ver Repositorio
21hace 5 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-98432

Escrito por DeepSeek.

Un servidor TCP IPv4 simple es vulnerable. MPTCP no es el desencadenante.

Compilamos Linux 6.18.55 a partir del tarball de la versión y hicimos que el kernel leyera memoria liberada en un listener IPPROTO_TCP normal. KASAN lo reportó dos veces. Nunca se creó un socket MPTCP, y en una ejecución MPTCP estaba desactivado en el kernel.

El mismo fallo hace que el kernel copie bytes de un objeto liberado en la respuesta que envía de vuelta. Ese es el primitivo que necesita una ruptura de KASLR, y hemos observado que ocurre en trabajo no publicado. No construimos una fuga de direcciones del kernel, y no demostramos una escritura.

Lo que se demuestra aquí, con código y registros: el use-after-free es real, el TCP estándar lo alcanza, y la corrección upstream lo detiene.

Las ejecuciones

KernelMPTCPIntentosTiempoResultado
6.18.55, sin correcciónno usado134,95534 sKASAN use-after-free
6.18.55, sin correccióndesactivado191,43180 sKASAN use-after-free
6.18.55 + correcciónno usado439,316411 slimpio

¿Qué tan difícil es alcanzarlo?

Muy difícil. Con KASAN el lector es lento, así que el fallo aparece en unos pocos cientos de miles de intentos. En un kernel normal es mucho más raro: en aproximadamente 48 millones de intentos vimos dos eventos, ambos dentro de los mismos cinco segundos.

Eso es demasiado poco para establecer una tasa. Lo máximo que afirmaremos es una cota de aproximadamente 1e-7 por intento, y aun así es un mejor caso, porque nuestro arnés fuerza los dos paquetes a dos CPUs y una NIC real normalmente envía un flujo a una CPU.

Así que una ejecución limpia no significa un kernel seguro. Lee las secciones 5.2 y 6 de ANALYSIS.md antes de citar cualquier número.

El fallo en palabras sencillas

Un servidor TCP recibe un SYN. El SYN lleva una opción IPv4 (Record Route o Timestamp). El kernel guarda esas opciones en el socket de petición.

Llega un segundo SYN para la misma conexión. El kernel construye un SYNACK para él y lee las opciones guardadas.

Al mismo tiempo finaliza el handshake. El socket hijo obtiene el mismo puntero, no una copia. El servidor cierra el hijo, y el kernel libera las opciones con un simple kfree().

El código del SYNACK sigue leyendo esa memoria. Ese es el use-after-free. La misma lectura es lo que coloca bytes liberados en el paquete.

Lo que este repositorio no es

Es un disparador de fallos, no un exploit. No filtra direcciones del kernel, no escribe memoria del kernel y no obtiene root. Muestra al kernel leyendo memoria liberada; KASAN es el juez.

El repositorio se detiene ahí a propósito. Las etapas posteriores se trabajaron de forma privada y no se publican aquí.

Reproducirlo

scripts/get-kernel.sh              # fetch 6.18.55, sha256 checked, into linux/
scripts/build-kernel.sh vuln       # KASAN kernel, no fix
scripts/build-kernel.sh patched    # KASAN kernel, with the fix
scripts/build-harness.sh           # builds harness/init + initramfs
scripts/run.sh vuln 90 selftest    # checks the wiring only
scripts/run.sh vuln 600            # expect a KASAN report
scripts/run.sh patched 600         # expect nothing

Necesitas gcc, make, bison, flex, bc y qemu-system-x86_64. KVM ayuda mucho. La VM toma 2 GB de RAM y 8 vCPUs.

Una ejecución puede no mostrar nada. Eso no es evidencia de un kernel seguro. Ejecútalo varias veces y lee las advertencias en ANALYSIS.md.

Comprueba tu propio kernel

No confíes en la cadena de versión. Mira el código en el binario.

scripts/check-free-sites.py

Encuentra los dos sitios libres en el kernel en ejecución y muestra qué función llaman: kfree (malo) o kvfree_call_rcu (corregido).

En la máquina en la que se escribió esto (6.18.59_1) ambos sitios usan kvfree_call_rcu, por lo que ese kernel está corregido.

Quién está expuesto

Un host está expuesto si se cumplen las tres condiciones:

  1. escucha en IPv4 TCP, y
  2. el par envía un SYN con opciones IP, y
  3. el programa cierra pronto el socket aceptado.

El atacante controla el punto 2. Por lo tanto, la mayoría de los servidores de internet están expuestos, y "no usamos MPTCP" no ayuda.

Dos notas:

  • accept_source_route=0 no te protege. Solo bloquea el enrutamiento de origen, no Record Route ni Timestamp.
  • Si aún no puedes aplicar el parche, descarta los SYN entrantes que lleven opciones IP. Así el kernel nunca guarda opciones para el socket de la petición. Aplicar el parche es mejor.

Archivos

RutaQué
ANALYSIS.mdel informe completo: ruta del código fuente, método, resultados, límites
harness/el disparador del fallo que se ejecuta como /init en QEMU
patches/la corrección upstream, usada para la compilación de control
scripts/ayudantes de descarga, compilación, ejecución y comprobación
evidence/informes de KASAN, registros de ejecución, comparación de compilaciones

Alcance

Solo kernels de prueba, y solo los que sean tuyos. Nada de esto debería apuntarse a sistemas que no controlas.

Licencia

MIT para nuestro código y texto. patches/ contiene un commit del kernel de Linux y permanece bajo GPL-2.0. Véase LICENSE.

Descargar herramienta