Los investigadores de seguridad de Google han descubierto una vulnerabilidad en el núcleo de Linux (CVE-2025-38236) que permite elevar los privilegios en el sistema. Entre otras cosas, la vulnerabilidad permite eludir el mecanismo de aislamiento sandbox utilizado en Google Chrome, logrando la ejecución de código a nivel de núcleo mientras se ejecuta código en el contexto de un proceso aislado de renderización de Chrome (por ejemplo, al explotar otra vulnerabilidad en Chrome). El problema se manifiesta a partir del núcleo de Linux 6.9 y se ha solucionado en las actualizaciones del núcleo de Linux 6.1.143, 6.6.96, 6.12.36 y 6.15.5. Un prototipo de exploit está disponible para su descarga.
La vulnerabilidad es causada por un error en la implementación de la bandera MSG_OOB, que puede establecerse para los sockets AF_UNIX. La bandera MSG_OOB ('out-of-band') permite adjuntar un byte adicional a los datos enviados, que el receptor puede leer antes de recibir el resto de los datos. Esta bandera fue añadida en el núcleo de Linux 5.15 a petición de Oracle y el año pasado se sugirió su depreciación, ya que no se había generalizado.
En la implementación del entorno sandbox de Chrome se permiten operaciones con sockets UNIX y llamadas al sistema send()/recv(), en las cuales la bandera MSG_OOB se permitía junto con otras opciones y no se filtraba de manera separada. El error en la implementación de MSG_OOB permitía acceder a la memoria después de su liberación (use-after-free) tras ejecutar una secuencia específica de llamadas al sistema: char dummy; int socks[2]; socketpair(AF_UNIX, SOCK_STREAM, 0, socks); send(socks[1], "A", 1, MSG_OOB); recv(socks[0], &dummy, 1, MSG_OOB); send(socks[1], "A", 1, MSG_OOB); recv(socks[0], &dummy, 1, MSG_OOB); send(socks[1], "A", 1, MSG_OOB); recv(socks[0], &dummy, 1, 0); recv(socks[0], &dummy, 1, MSG_OOB);
Fuente: opennet.ru
