
PoC de escalada local de privilegios en el kernel de Linux para CVE-2026-68121, encadenando PPPoE, FUSE e IP6GRE para corromper la memoria del kernel y obtener root.
[!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 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 se realice en un entorno de prueba aislado.
[!WARNING] Este PoC es destructivo. Corrompe deliberadamente memoria del kernel en vivo. 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 desechable.
El PoC:
struct file y
prepara una fdtable poblada hacia la asignación objetivodev_hard_header() reasigne la cabeza del skb, luego usa el puntero obsoleto
de la cabecera PPPoE para redirigir una entrada de la fdtable al archivo falso, y/bin/sh -p.El PoC asume y apunta a x86-64 para mantener las cosas simples. En teoría, el bug no debería ser específico de arquitectura, pero tendrías que portar mucho (desde filtrar la base del kernel hasta el resto de la cadena).
Enumerando exhaustivamente por completitud:
6.19.10-300.fc44.x86_64, o Ubuntu 24.04 con
6.8.0-124-generic o 6.8.0-136-generic (puede intentar eliminar estas
comprobaciones, pero otras distros/versiones de kernel pueden requerir personalización/preparación
por objetivo)passwd y un directorio home que
le pertenezcaCAP_NET_ADMIN y
CAP_NET_RAW dentro de ese namespace/dev/fuse, más soporte de FUSE, PPPoE, IP6GRE, AF_PACKET/TX-ring,
y team en Fedora o soporte de bonding en Ubuntumembarrier privado expedito para diseños seleccionados de bajo ordenRLIMIT_NOFILE suficientemente grande para la geometría de portador
seleccionada, verificado en tiempo de ejecución y que potencialmente puede requerir hasta 8,192 descriptoresProbado solo con 4GB de RAM y una variedad de recuentos de 4+ CPUs. Otras combinaciones de CPU/memoria pueden necesitar más preparación y/o pueden redirigir la escritura a memoria no relacionada.
Ejecútelo como un usuario sin privilegios con una entrada en passwd. La conversión de Ubuntu puede
tardar un rato (por ejemplo, 300+ intentos).
python3 pppoeject_root_repro.py
gcc con libc y cabeceras de desarrollo de Linux UAPI,
taskset, unshare, ip, true, y /bin/sh, más aa-exec
y el perfil trinity cargado en Ubuntu si se deniega unshare -Urn directo