miércoles, 15 de julio de 2026
Policial

Nueva vulnerabilidad en Linux Pedit COW permite escalada de privilegios a nivel de administrador

Una nueva vulnerabilidad en Linux permite a usuarios locales obtener acceso de administrador mediante la manipulación de binarios almacenados en caché. El fallo afecta al subsistema de control de tráfico del kernel de Linux y permite que un usuario sin privilegios logre acceso de root en los sistemas comprometidos.

La vulnerabilidad CVE-2026-46331, conocida como «pedit COW», permite a usuarios locales obtener acceso de administrador en sistemas Linux afectados al corromper la memoria caché de páginas a través de act_pedit. Se trata de una escritura fuera de límites en la acción de edición de paquetes que corrompe la caché de páginas compartida. Un exploit público y funcional apareció un día después de la asignación de la CVE, el 16 de junio. Red Hat considera esta vulnerabilidad como importante.

El exploit nunca accede al archivo en disco. En su lugar, envenena la copia en caché de un binario de root setuid, específicamente /bin/su, inyecta una pequeña carga útil y ejecuta esa imagen modificada como root. Las comprobaciones de integridad de archivos no generan alertas mientras ya existe una shell de root abierta.

La explotación requiere dos condiciones: que act_pedit sea cargable y que los espacios de nombres de usuario sin privilegios estén abiertos, lo que otorga al atacante la capacidad CAP_NET_ADMIN necesaria para activar el fallo. En los sistemas RHEL y Debian probados, ambas condiciones estaban presentes.

La herramienta de control de tráfico tc de Linux puede reescribir las cabeceras de los paquetes en tránsito mediante una acción llamada pedit. La función del kernel que realiza esta acción, tcf_pedit_act(), debería crear una copia privada de los datos antes de editarlos, siguiendo el patrón estándar de copia en escritura. Sin embargo, se verifica el rango de escritura una sola vez, antes de conocerse los desplazamientos finales. Algunas claves de edición solo resuelven su desplazamiento en tiempo de ejecución. Cuando esto sucede, la escritura se produce fuera de la región copiada privadamente, por lo que el kernel modifica una página de la caché de páginas compartida. Si esa página pertenece a un archivo en caché, la imagen en memoria se corrompe.

Este patrón es similar a vulnerabilidades anteriores como Dirty Pipe, Copy Fail, Dirty Clone y Dirty Frag, que comparten la misma estructura: una ruta rápida del kernel escribe en una página que no le pertenece exclusivamente, afectando la caché de páginas. La novedad radica en el punto de entrada: un usuario sin privilegios puede configurar las acciones de tc desde dentro de un espacio de nombres de usuario, otorgándole el CAP_NET_ADMIN necesario.

El autor de la prueba de concepto reportó explotación de usuario sin privilegios a root en RHEL 10 y Debian 13 (trixie), donde los espacios de nombres de usuario sin privilegios están abiertos por defecto. Ubuntu 24.04 requería enrutar la ejecución a través de perfiles de AppArmor que aún permitían espacios de nombres de usuario. Ubuntu 26.04 bloquea esta ruta por defecto mediante restricciones en sus perfiles de AppArmor, aunque el kernel subyacente sigue siendo vulnerable.

Debian ha corregido trixie a través de su canal de seguridad, aunque Debian 11 y 12 siguen figurando como vulnerables. Ubuntu enumera las versiones compatibles desde la 18.04 hasta la 26.04 como vulnerables a fecha de 25 de junio. Red Hat enumera RHEL 8, 9 y 10 como afectadas; RHEL 7 no aparece en el boletín.

La solución inmediata es instalar el kernel parcheado y reiniciar. Se deben priorizar los sistemas donde «usuario local» no significa usuario de confianza: hosts multiusuario, ejecutores de CI/CD, nodos de Kubernetes, trabajadores de compilación y máquinas compartidas de investigación o laboratorio.

Si no se puede aplicar el parche, existen medidas para interrumpir la cadena de explotación. En sistemas que no requieren reglas de tc pedit, se puede desactivar el módulo act_pedit mediante las opciones de modprobe. Alternativamente, se pueden desactivar los espacios de nombres de usuario sin privilegios usando user.max_user_namespaces=0 en RHEL o kernel.unprivileged_userns_clone=0 en Debian/Ubuntu. Esto elimina la capacidad necesaria para la explotación, pero afecta a contenedores sin privilegios de root, algunos entornos aislados de CI y navegadores aislados, por lo que requiere pruebas previas.

Dado que la sobrescritura se realiza en la memoria caché, las comprobaciones de integridad de archivos pueden no detectarla. Se puede vaciar la caché de páginas, aunque esto solo borra la copia en memoria infectada sin solucionar el problema de la shell de root que el atacante ya haya abierto, por lo que el host debe considerarse comprometido.

La solución fue publicada en la lista de correo de netdev a finales de mayo como un parche rutinario para la corrupción de datos. El detalle explotable permaneció en una lista de correo pública durante semanas antes de ser incluido en la advertencia de seguridad CVE. La CVE se asignó cuando se integró la solución el 16 de junio, y una prueba de concepto con potencial de explotación se publicó al día siguiente.

Con Información de blog.segu-info.com.ar

Editor

Redacción.

Deja tu comentario