
Una falla en el subsistema de control de tráfico del kernel de Linux podría permitir que un usuario local sin privilegios obtenga privilegios de root en un sistema afectado.
CVE-2026-46331, también conocido como «pedit COW», es una escritura fuera de límites en la acción de edición de paquetes (act_pedit) que corrompe la memoria caché de la página compartida. Un día después de la asignación de CVE del 16 de junio, surgió un exploit disponible públicamente. Red Hat ha calificado este defecto como Importante.
Este exploit nunca afecta los archivos en el disco. Envenena una copia almacenada en caché del binario raíz setuid (/bin/su) en la memoria, inyecta una pequeña carga útil y ejecuta la imagen modificada como raíz. Las comprobaciones de integridad de archivos vuelven a la normalidad mientras el shell raíz ya está abierto.
Este exploit requiere dos cosas. act_pedit se puede cargar y el espacio de nombres de usuario sin privilegios está abierto. Esto le da al atacante las capacidades de red local del espacio de nombres (CAP_NET_ADMIN) necesarias para desencadenar el error.
Ambas condiciones estaban presentes en los objetivos RHEL y Debian probados.
Cómo funcionan los errores
La herramienta de control de tráfico tc de Linux puede reescribir encabezados de paquetes en tránsito mediante una acción llamada pedit. Se supone que la función del núcleo que hace esto, tcf_pedit_act(), crea una copia privada de los datos antes de editarlos, como es el patrón estándar de copia en escritura.
El rango de escritura se verifica una vez antes de determinar el desplazamiento final. Algunas claves de edición solo resuelven compensaciones en tiempo de ejecución. Cuando esto sucede, la escritura llega fuera del área de copia privada, por lo que el kernel modifica la página de caché de la página compartida en lugar de la copia privada. Si la página pertenece a un archivo almacenado en caché, la imagen en memoria de ese archivo está dañada.
El patrón me resulta familiar. Dirty Pipe, Copy Fail, DirtyClone y Dirty Frag comparten la misma forma. Esto significa que la ruta rápida del kernel escribe en páginas que no son de su propiedad exclusiva, lo que genera un acierto en la caché de la página.
Lo nuevo aquí es el punto de entrada. Un usuario sin privilegios puede configurar la acción tc desde el espacio de nombres del usuario, lo que otorga el CAP_NET_ADMIN necesario para el exploit.
Sistemas afectados
El autor de la PoC informó sobre un exploit sin privilegios de root en RHEL 10 y Debian 13 (trixie). En estas ubicaciones, los espacios de nombres de usuarios sin privilegios se abren de forma predeterminada. En Ubuntu 24.04, era necesario realizar enrutamiento a través de perfiles de AppArmor que aún permiten espacios de nombres de usuario. Ubuntu 26.04 bloquea esa ruta de forma predeterminada porque su perfil AppArmor restringe el espacio de nombres para usuarios sin privilegios, pero el kernel subyacente sigue siendo vulnerable.
Las correcciones se desglosan por proveedor.
Debian ha solucionado trixie a través de canales de seguridad. Debian 11 y 12 todavía figuran como vulnerables. Ubuntu enumera las versiones compatibles 18.04 a 26.04 como vulnerables a partir del 25 de junio. Red Hat enumera RHEL 8, 9 y 10 como afectados. RHEL 7 no figura en el boletín de seguridad.
que hacer
Instale el kernel parcheado y reinicie. Prefiera sistemas donde «usuario local» no implique usuarios confiables, como hosts multiinquilino, ejecutores de CI/CD, nodos de Kubernetes, trabajadores de compilación y máquinas de laboratorio o de investigación compartidas.
Si aún no se puede aplicar el parche, dos mitigaciones detendrán la cadena de explotación. En sistemas que no requieren reglas tc pedit, verifique si el módulo está en uso (lsmod | grep act_pedit) y bloquee su carga.
echo ‘instalar act_pedit /bin/true’ | sudo tee /etc/modprobe.d/disable-act_pedit.conf
Alternativamente, deshabilite los espacios de nombres de usuarios sin privilegios (user.max_user_namespaces=0 en RHEL, kernel.unprivileged_userns_clone=0 en Debian/Ubuntu). Esto elimina la funcionalidad local del espacio de nombres necesaria para el exploit, pero también daña los contenedores sin raíz, algunos entornos limitados de CI y navegadores de entornos aislados. Pruebe primero.
Debido a que la sobrescritura tiene como objetivo la memoria caché, es posible que las comprobaciones de integridad de archivos no puedan detectarla. Eliminar el caché de la página (echo 3 > /proc/sys/vm/drop_caches) borra la copia en memoria contaminada, pero no hace nada con respecto al shell raíz que el atacante ya tiene abierto. Trate al host como comprometido.
Esta solución se publicó en la lista de correo de netdev a finales de mayo como un parche habitual para la corrupción de datos. Durante varias semanas se publicaron detalles explotables en una lista de correo pública. No hay CVE ni advertencias de seguridad. El CVE se asignó cuando se fusionó la solución el 16 de junio. La prueba de concepto armada duró menos de un día. Para los errores de corrupción de la caché de la página del kernel, esperar las reglas del escáner es demasiado tarde.
Source link
