
Comprobador de versión del kernel local, sonda remota de capacidad MPTCP y CLI interactiva de escaneo y sondeo para evaluar la exposición a la vulnerabilidad use-after-free en IPv4 TCP del kernel de Linux (CVSS 9.8).
Herramientas para detectar la exposición a CVE-2026-98432 — un use-after-free en IPv4 TCP del kernel de Linux (CVSS 9.8) que afecta a los kernels 4.4 hasta las ramas estables anteriores a la corrección.
| Archivo | Propósito | Requiere |
|---|---|---|
check-cve-2026-98432.sh | Comprobación local de la versión del kernel — confirma si está parcheado o es vulnerable | Acceso al shell (SSH/consola) |
probe-mptcp.py | Sonda remota de capacidad MPTCP — detecta el vector de explotación demostrado | Python 3.9+, kernel de Linux ≥ 5.6 en el host que realiza la sonda |
scan-and-probe.sh | Encadena el descubrimiento de puertos con nmap con la sonda MPTCP | nmap + lo anterior |
chmod +x check-cve-2026-98432.sh
./check-cve-2026-98432.sh
Códigos de salida: 0 parcheado, 1 vulnerable, 2 requiere reinicio o comprobación manual.
Host único, puertos conocidos:
python3 probe-mptcp.py <HOST> <PORT> [PORT ...]
python3 probe-mptcp.py 192.168.1.1 22 443 5060
Host único, autodescubrimiento de todos los puertos TCP abiertos con nmap:
python3 probe-mptcp.py <HOST> $(nmap -Pn --open -p- <HOST> -oG - | grep -oP '\d+/open/tcp' | cut -d/ -f1 | tr '\n' ' ')
Reemplaza ambos
<HOST>por la IP objetivo.
Varios hosts:
chmod +x scan-and-probe.sh
./scan-and-probe.sh <HOST1> <HOST2> <HOST3>
uname -r con la primera versión corregida de cada rama estable.net.mptcp.enabled y listeners MPTCP activos).Abre una conexión TCP estándar que solicita MPTCP y comprueba si el servidor negoció MPTCP o recurrió a TCP simple.
PLAIN-TCP — el servidor no negoció MPTCP; el vector de explotación de root demostrado está ausente.MPTCP-ACTIVE — el servidor negoció MPTCP; el vector de exposición está presente.CLOSED — puerto filtrado o rechazado.Seguro: sin opciones IP, sin reenvíos ni condiciones de carrera, sin disparador de explotación. Es un handshake TCP normal con el flag de capacidad MPTCP.
Limitación: PLAIN-TCP no significa parcheado. Significa que el vector demostrado está cerrado. La condición de carrera subyacente existe en TCP IPv4 simple — solo la versión del kernel confirma la corrección.
| Rama | Primera corregida |
|---|---|
| 5.10.x | 5.10.272 |
| 5.15.x | 5.15.223 |
| 6.1.x | 6.1.190 |
| 6.6.x | 6.6.159 |
| 6.12.x | 6.12.113 |
| 6.18.x | 6.18.56 |
| 7.2.x | 7.2.10 |
| 7.3+ | Corregida en el lanzamiento |
sysctl -w net.mptcp.enabled=0
echo 'net.mptcp.enabled=0' > /etc/sysctl.d/90-disable-mptcp.conf
sysctl --system
Esto desactiva MPTCP en todo el kernel, cerrando la ruta de explotación de root demostrada. No requiere reinicio; persiste entre reinicios. La mayoría de los servicios nunca usan MPTCP, por lo que el impacto funcional es nulo.
MIT