Las vulnerabilidades del kernel de Linux no se notifican con anticipación a las distribuciones
(openwall.com)- CopyFail, una vulnerabilidad de escalación local de privilegios en el kernel de Linux, está entre las más graves de las recientes vulnerabilidades del tipo “make-me-root” del kernel
- El problema fue introducido en el commit
72548b093ee38a6d4f2a19e6ef1948ae05c181f7de la versión 4.14 y fue corregido en 6.18.22, 6.19.12 y 7.0 - Las versiones 6.19.12 y 6.18.22 incluyeron el backport de la corrección el 11 de abril, pero en ese momento la corrección no llegó a las versiones Longterm 6.12, 6.6, 6.1, 5.15 y 5.10
- La corrección no se aplicó de forma clean apply en kernels antiguos y, en situaciones donde se requiere un despliegue inmediato, puede usarse como mitigación temporal un parche para desactivar el módulo
authencesnde IPSec - Las vulnerabilidades del kernel de Linux no se notifican con anticipación a las distribuciones a menos que quien las reporte las lleve a la linux-distros ML, y en este caso tampoco hubo heads-up
Alcance del CVE-2026-31431 y estado de la corrección
- CopyFail es una vulnerabilidad de escalación local de privilegios en el kernel de Linux y está entre las más graves de las recientes vulnerabilidades del tipo “make-me-root” del kernel
- El problema fue introducido en el commit
72548b093ee38a6d4f2a19e6ef1948ae05c181f7de 4.14 y fue corregido respectivamente en 6.18.22, 6.19.12 y 7.0 - Commit de corrección en 6.18.22
- Commit de corrección en 6.19.12
- Commit de corrección en 7.0
- Las versiones 6.19.12 y 6.18.22 se publicaron el 11 de abril con el backport de la corrección incluido
- En ese momento, la corrección no había llegado a las versiones Longterm 6.12, 6.6, 6.1, 5.15 y 5.10, y tampoco aparecía en la cola estable upstream
- Si el problema fue introducido en 2017, es necesario verificar si también afecta a kernels más antiguos
Notificación previa a distribuciones y mitigación temporal
- Esa corrección no hace clean apply en kernels antiguos
- Se intentó hacer el backport porque era una situación que requería despliegue inmediato, pero debido a varios cambios de API era difícil avanzar con certeza
- Como mitigación temporal puede usarse un parche para desactivar el módulo
authencesnde IPSec, y aun sin ser especialista en IPSec, parece una “opción menos mala” - 0001-crypto-disable-authencesn-module-for-CVE-2026-31431.patch: parche para desactivar el módulo
authencesncomo respuesta a CVE-2026-31431 - Las vulnerabilidades del kernel de Linux no se notifican con anticipación a las distribuciones a menos que quien las reporte las lleve a la linux-distros ML
- En este caso no hubo heads-up a través de la linux-distros ML
1 comentarios
Comentarios en Hacker News
Sam James, el autor del artículo enlazado, es desarrollador de Gentoo
En cualquier caso, esto estuvo cerca de ser un desastre, y fue muy irresponsable publicar el exploit antes de que las distribuciones pudieran desplegar los arreglos
No hay forma de saber cuántos proveedores de hosting compartido habrán sido comprometidos por esto
También preocupa que no parezca haber comunicación entre el kernel security team y los maintainers de las distribuciones
Uno esperaría que los primeros avisaran a los segundos, pero en la práctica parece una estructura donde la responsabilidad recae en quien descubre la vulnerabilidad
Como referencia, Google Project Zero usa una política similar de “90+30”: https://projectzero.google/vulnerability-disclosure-policy.h...
El verdadero problema es que no existe un canal de comunicación entre el kernel security team y los maintainers de las distribuciones
La persona que descubre la vulnerabilidad no debería cargar con la responsabilidad de reportarla por separado a todos los downstream
El equipo del kernel debió avisar a la lista de responsables de seguridad de las distribuciones sobre la severidad del parche y la fecha de divulgación 30 días después
En la página de divulgación aparecen frases como “Is your software AI-era safe?”, “Copy Fail was surfaced by Xint Code about an hour of scan time against the Linux crypto/ subsystem”, y “[Try Xint Code]”
Es una forma de hacer que el producto se vea más atractivo mientras más confusión genere
La expresión Responsible Disclosure, igual que “Secure Boot”, está lingüísticamente muy bien diseñada, pero en la práctica parece servir para gestionar la reputación de las organizaciones intermedias —empresas y fundaciones— que están entre mi computadora y yo
A ellos les interesa más evitar que se diga “RHEL es vulnerable” o “Ubuntu es vulnerable” que saber si mi computadora individual está expuesta
La vulnerabilidad existe de todos modos, así que prefiero tener la oportunidad de conocer el riesgo y mitigarlo en vez de solo esperar a que lo arreglen en silencio
Es decir, creo que la divulgación inmediata es la única opción que no es irresponsable
No es aceptable ejecutar cargas de trabajo de tenants que no confían entre sí bajo un único kernel compartido
Los LPE del kernel no son raros, y este en particular solo era especialmente simple y portable, mientras que la capacidad ofensiva básica ya es casi un commodity del CNE
Si haces shared hosting y no quieres que te comprometan, deberías usar otros mecanismos como gVisor o VMs con Firecracker
Android es más o menos el único sistema importante que sí lo usa como frontera de seguridad, y lo mitiga con aprobación del usuario para instalar APKs, políticas estrictas de SELinux y seccomp, y el hardening de GrapheneOS
En este caso la mitigación sí funcionó: https://discuss.grapheneos.org/d/35110-grapheneos-is-protect...
No entiendo por qué se dice algo como “en el caso de una vulnerabilidad del Linux kernel, las distribuciones no reciben aviso previo a menos que el reporter la lleve directamente a la lista linux-distros ML”
Que el reporter tenga que coordinarse directamente con las distribuciones presupone un nivel alto de conocimiento del proyecto Linux
Quien reporta una vulnerabilidad no debería ser responsable de trabajar directamente con todos los consumidores downstream del Linux kernel
Bajo esa lógica, también habría que contactar individualmente a todos los fabricantes que usan Linux en sus equipos
Considero que el reportero ya hizo suficiente con divulgar responsablemente a Linux y esperar hasta que el parche estuviera integrado
Dentro del proyecto Linux debería haber personas con autoridad y responsabilidad sobre las vulnerabilidades de seguridad, y ellas deberían encargarse de avisar a las distribuciones downstream
https://docs.kernel.org/process/security-bugs.html
As such, the kernel security team strongly recommends that as a reporter of a potential security issue you DO NOT contact the “linux-distros” mailing list UNTIL a fix is accepted by the affected code’s maintainers and you have read the distros wiki page above and you fully understand the requirements that contacting “linux-distros” will impose on you and the kernel community.Como mínimo, habría sido responsable avisar a los equipos de seguridad de esas distribuciones
Tampoco parece creíble que no supiera que esas distribuciones son downstream del equipo del kernel
Sale hasta con una búsqueda en Google: https://share.google/aimode/eihDKXZJy94Z5lC1p
Cuesta entender que no hayan pensado en eso y hayan dejado a todo el mundo expuesto al exploit; en algunas jurisdicciones incluso parecería razonable considerarlo un delito grave
El intercambio más interesante sobre la divulgación está en este enlace
https://www.openwall.com/lists/oss-security/2026/05/01/3
Es la respuesta de greg k-h: “no podemos avisar con antelación a nadie, porque entonces tendríamos que avisar a todo el mundo sobre todo. Esa es la única política que los organismos legales y gubernamentales nos han permitido adoptar para poder operar”
Hay que dejar de culpar al reporter y exigir que se arregle el proceso del kernel
El Linux kernel ya no es un proyecto de juguete, y hay empleados de tiempo completo contratados por varias empresas
Ellos debieron encargarse de avisar a las distribuciones, no una persona cualquiera
Probablemente no habría habido tanta crítica si no hubieran incluido menciones como RHEL 14
No estamos hablando de un investigador individual o del ámbito académico, sino de una empresa de seguridad con un departamento profesional de comunicaciones señalando a maintainers de distros
Pero como el reporter no esperó a que eso ocurriera, puede que personas reales hayan salido perjudicadas, y esa responsabilidad recae en el reporter
Soltarlo al mundo sin avisar antes a las principales distribuciones fue irresponsable
Para quienes usan un kernel donde AF_ALG está enlazado directamente y no como módulo, alguien publicó un workaround basado en eBPF: https://github.com/Dabbleam/CVE-2026-31431-mitigation
Lo estoy ejecutando ahora mismo en producción, mitiga el ataque y hasta ahora no se observan efectos secundarios inesperados
Creo que
nosuidy probablementenodevdeberían ser opciones de montaje por defecto del filesystem/devya es un devtmpfs especial, y si hace falta un/devmínimo en el initrd, entonces el rootfs tmpfs del initrd podría montarse explícitamente condevysuidPermitir que binarios SUID “existan” en cualquier lugar es un riesgo de seguridad enorme
Si montas un medio de almacenamiento externo, ¿cómo verificas que los binarios SUID dentro de ese block device no sean maliciosos?
Además, este exploit parece requerir que el usuario que ejecuta el binario SUID también pueda leer ese binario
No hay razón para que un usuario no root tenga permiso de lectura sobre un binario SUID
NixOS maneja esto correctamente
En
/nix/store, que es el directorio normal de instalación de paquetes, no hay SUID, y como los paquetes no se filtran fuera de ahí, se puede usarnosuidcon seguridad en otros mountpointsLa única excepción es un directorio de propósito único,
/run/wrappers.$hash, que contiene de forma segura únicamente wrappers SUID solo ejecutablesEl bug explotado permite en la práctica un page cache poisoning arbitrario
A partir de ese punto, la partida ya está perdida, y aunque parchear programas suid puede ser la forma más fácil de obtener una root shell, no es ni de cerca la única
Hay muchas otras formas
Si el objetivo fuera solo bloquear el exploit de demostración, habría métodos más simples como un blacklist, pero eso no lo vuelve más seguro
Esta vulnerabilidad permite manipular el page cache
Podrías manipular
ld.sopara enganchar cualquier system call, cambiar el uid a 0 o elevar privilegios de muchas otras manerasEl mount point no tiene nada que ver con este problema
Claro, bloquear suid en áreas escribibles por usuarios y evitar la lectura de archivos suid siempre es buena idea, pero por otras razones
NixOS tampoco corrige esta vulnerabilidad y es tan vulnerable como las demás distribuciones
Para ejecutar un binario, hay que leerlo desde disco y cargarlo en memoria
De hecho, si un binario en particular tiene permiso de lectura pero no de ejecución, también puedes ejecutarlo invocando directamente el linker
Por ejemplo, llamando a
/bin/ld.so.1 /path/to/binary, el linker lee y carga el binario y luego salta a su entry point sin hacer una llamada aexec()En el enlace de Bleeping Computer de abajo hay posibles medidas de respuesta mientras se prepara el parche
https://www.bleepingcomputer.com/news/security/new-linux-cop...
RHEL, Fedora y Gentoo están configurados para compilar ese código directamente dentro del kernel
Sin un parche o un cambio de configuración, como insinuó Sam en Gentoo, esas distribuciones seguirán siendo vulnerables
NixOS tampoco recibió aviso
https://discourse.nixos.org/t/is-nixos-affected-by-copy-fail...
Hyperbola GNU estuvo a salvo porque todavía usa Python 3.8 por razones políticas y de estabilidad
Ubuntu ya publicó un parche, y las pruebas antes y después del parche ya se completaron