
PoC en Python para CVE-2026-80844: corrupción de skb en IPv6 AH6 y descifrado ESP-in-UDP para sobrescribir /etc/pam.d/su y escalar a root en Linux.
[!WARNING] El PoC se proporciona únicamente para ayudar a defensores, mantenedores y equipos de seguridad autorizados a validar parches, mitigaciones, detecciones y exposición en sistemas que poseen o que están explícitamente autorizados a probar.
Usted es el único responsable de garantizar que su uso de este material sea lícito, autorizado, controlado y realizado en un entorno de prueba aislado.
[!WARNING] Este PoC es destructivo. Modifica
/etc/pam.d/susin ningún tipo de reversión. Una sobrescritura mal ubicada puede corromper memoria del kernel no relacionada y colgar/bloquear la máquina.Ejecútelo solo en una VM desechable/host de un solo uso.
El PoC:
entra en un espacio de nombres privado de usuario/red, construye rutas veth, IOAM6, netem, AH6 y
ESP-in-UDP y encola skbs ESP respaldados por archivo provenientes de /etc/pam.d/su
envía una cabecera de enrutamiento IPv6 malformada cuyo segments_left excede su
recuento de direcciones, haciendo que AH6 corrompa un skb objetivo cercano
utiliza los metadatos del skb corrompido para hacer que ESP descifre bytes elegidos dentro de la página PAM respaldada por archivo, y
ejecuta su - root después de que pam_rootok.so se haya convertido en pam_permit.so.
El PoC asume y tiene como objetivo x86-64 para mantener las cosas simples. En teoría, el bug no debería ser específico de arquitectura.
Enumerando exhaustivamente por completitud:
7.1.3-100.fc43.x86_64, o Ubuntu 24.04 con 6.8.0-134-generic (puede intentar eliminar estas comprobaciones, pero otras distros/versiones de kernel pueden requerir personalización/ajuste por objetivo)/etc/pam.d/suCAP_NET_ADMIN y CAP_NET_RAW dentro de ese espacio de nombressch_netem y vethgcc, openssl, ip, tc, unshare, nsenter, su, , , , , , , , , , , , , y , además de y el perfil cargado si se deniega directoFedora funcionó mejor con 16 vCPUs/32 GB de RAM; Ubuntu con 29 vCPUs/8 GB de RAM -- otras combinaciones podrían funcionar (especialmente diferentes cantidades de vCPU). El PoC funciona razonablemente con una variedad de otras combinaciones de vCPU/RAM, pero los resultados pueden variar.
Ejecútelo como un usuario sin privilegios con una entrada en passwd.
python3 dirtyah6_root_repro.py
bashenvshsleepawkseqgrepkillcatsedrmddodtraa-exectrinityunshare -Urn