Un repositorio en GitHub documenta una prueba de concepto de escalada de privilegios locales en Linux que permite escapar de un contenedor o jaula sin privilegios y obtener un shell de root en el host. La técnica explota un error ya corregido en la función __ip6_append_data() del kernel, cerrado en el commit 38becddc sin asignación de CVE, que provocaba un desbordamiento lineal dentro del slab sobre la estructura skb_shared_info al final del objeto head de un paquete IPv6.
El objetivo es CentOS Stream 10 y RHEL 10 con kernel 6.12.x. La cadena convierte el desbordamiento en una use-after-free sobre una página de pipe, que se reutiliza como tabla de páginas de último nivel. Forjando entradas PTE a través de operaciones sobre el pipe, el exploit consigue lectura y escritura física arbitraria y, tras ella, ilimitada en el espacio del kernel. Con ello derrota KASLR apoyándose en la tabla SMP de trampolín en memoria baja y en el campo init_top_pgt.
El código lee los desplazamientos de las estructuras desde /sys/kernel/btf/vmlinux, localiza su propio task_struct a través de vmemmap, pone a cero los identificadores de credenciales y rellena los conjuntos de capacidades. Para eludir SELinux sin desactivar el modo Enforcing, sobrescribe el prólogo de avc_denied() con un stub que siempre devuelve permitido. El escape del contenedor se realiza modificando la variable global core_pattern para que apunte, mediante /proc//root, al propio binario, que al ejecutarse como usermodehelper nace en los espacios de nombres iniciales del host.
El autor advierte de limitaciones técnicas: requiere memoria paginada de cinco niveles (LA57), init_on_alloc desactivado y acceso de lectura a BTF. Una versión con CVE y soporte para más configuraciones se anunciará tras la divulgación pública de la corrección.
