Cuatro vulnerabilidades antiguas de Linux ya cuentan con exploits funcionales que permiten obtener privilegios de roo

Cuatro vulnerabilidades antiguas de Linux ya cuentan con exploits funcionales que permiten obtener privilegios de roo

Vulnerabilidades en el kernel pasaron desapercibidas durante 21 años; una permite ataques remotos.

image

Cuatro fallos en el núcleo de Linux, que permanecieron en el código entre 10 y 21 años, recibieron exploits públicos funcionales para elevar privilegios a root. Las vulnerabilidades afectan a distintos subsistemas de red, y una de ellas, en determinadas configuraciones, teóricamente puede pasar de un ataque local a una toma remota del sistema.

El especialista en seguridad Asim Manizada nombró las vulnerabilidades DirtyAH6 (CVE-2026-80844), TUNderflow (CVE-2026-81000), PPPoEject (CVE-2026-68121) y DiagSpill (CVE-2026-74469). Manizada informó de los fallos al equipo de seguridad de Linux a mediados de julio, tras lo cual las correcciones fueron entrando gradualmente en las ramas estables del núcleo. Una situación similar ocurrió recientemente con otra serie de vulnerabilidades de Linux, para las que inmediatamente publicaron 18 exploits.

DirtyAH6 se oculta en el procesamiento del Authentication Header para IPv6. Un valor incorrecto de segments_left hace que el núcleo calcule un puntero fuera del búfer previsto y ejecute una operación memmove que supera los límites del mismo. Un PoC funcional corrompe las estructuras del búfer de red y luego emplea una técnica similar a Dirty Frag para reemplazar datos en la memoria y abrir una shell con privilegios root mediante su.

TUNderflow está relacionado con los dispositivos de red virtual TUN/TAP y un cálculo erróneo del espacio antes de los datos del paquete. Un headroom excesivo provoca un desbordamiento entero, tras lo cual el procesamiento del paquete sale del área de memoria asignada. PPPoEject explota otro error: el código de PPPoE continúa usando un puntero antiguo dentro del búfer de red después de la realocación de memoria y, de hecho, provoca un uso de memoria después de su liberación.

DiagSpill se encuentra en SCTP. El contador de direcciones del nodo se almacena en un campo de 16 bits y se reinicia al añadirse el transporte número 65.536. Tras el desbordamiento, el núcleo reserva una respuesta Netlink demasiado pequeña, pero continúa copiando la lista completa, escribiendo alrededor de 8 MB fuera del búfer. Un subsistema similar ya fue la causa de SCTPhantom, que permaneció en Linux durante 18 años y permitía obtener root y salir de contenedores.

Los exploits publicados no pueden considerarse un botón universal de root para cualquier Linux. Las cuatro fallas corrompen la memoria, por lo que el PoC debe ajustarse al núcleo concreto, al procesador y a la disposición de los objetos en memoria. DirtyAH6, TUNderflow y PPPoEject en las cadenas mostradas requieren espacios de nombres de usuario no privilegiados. DiagSpill es el que más difiere: con SCTP y sctp_diag disponibles, el fallo no requiere ni espacios de nombres de usuario ni capacidades especiales. En las pruebas de Manizada, SELinux y AppArmor por sí solos no impidieron la explotación una vez cumplidas las condiciones necesarias.

Parte de las fallas también tiene un potencial remoto limitado. DirtyAH6 puede provocar un fallo remoto de una máquina Linux que actúe como enrutador IPv6 y añada AH en modo transporte. Manizada también obtuvo root remoto en laboratorio tras una preparación previa de la memoria, pero calificó la explotación completamente remota como extremadamente difícil. Para DiagSpill, la única posible denegación de servicio remoto ocurre con configuraciones no estándar de SCTP, y el autor no encontró una vía práctica hacia un root remoto.

En el análisis publicado el 18 de septiembre (análisis de las cuatro vulnerabilidades) la principal medida de protección indicada es actualizar el núcleo. Las primeras versiones estables que contienen las cuatro correcciones son Linux 5.10.270, 5.15.221, 6.1.188, 6.6.157, 6.12.109, 6.18.50 y 7.2.4. Deshabilitar los espacios de nombres de usuario no privilegiados impide que un usuario normal explote las tres primeras fallas, pero no protege contra DiagSpill. Si no se necesitan AH6, TUN, PPPoE o SCTP, también se pueden desactivar las capacidades correspondientes.

La edad del nuevo cuarteto muestra bien por qué el código antiguo del núcleo no puede darse por probado por el tiempo. En agosto ocurrió una historia similar con Dirty COW: años después de su corrección, especialistas mostraron cómo adaptar el viejo exploit a escenarios modernos y a dispositivos que siguen funcionando con núcleos muy antiguos.

En primavera, Linux ya había sufrido una serie de hallazgos similares alrededor de la caché de páginas. En particular, Copy Fail permitía con apenas unas líneas de código obtener root cambiando datos protegidos en la memoria sin modificar el archivo en el disco.

Otro ejemplo reciente está relacionado con pedit COW. La vulnerabilidad permitía a un usuario sin privilegios sustituir directamente en la caché de memoria un programa setuid, por lo que una verificación habitual de integridad del archivo podía no detectar un ya consumado apoderamiento de root.