Investigadores de seguridad de Google han identificado una vulnerabilidad (CVE-2025-38236) en el kernel de Linux que permite la escalada de privilegios. Entre otras cosas, esta vulnerabilidad permite eludir el mecanismo de aislamiento de la zona protegida (sandbox) de Google Chrome y lograr la ejecución de código a nivel de kernel al ejecutar código en el contexto de un proceso de renderizado aislado de Chrome (por ejemplo, al explotar otra vulnerabilidad de Chrome). El problema aparece a partir del kernel de Linux 6.9 y se solucionó en las actualizaciones 6.1.143, 6.6.96, 6.12.36 y 6.15.5. Un prototipo del exploit está disponible para descargar.
La vulnerabilidad se debe a un error de implementación en el indicador MSG_OOB, que puede configurarse para sockets AF_UNIX. El indicador MSG_OOB («fuera de banda») permite añadir un byte adicional a los datos enviados, que el receptor puede leer antes de recibir el resto. Este indicador se añadió al kernel de Linux 5.15 a petición de Oracle y se propuso su desuso el año pasado debido a su uso poco extendido.
La implementación de la zona de pruebas de Chrome permitía operaciones de sockets UNIX y llamadas al sistema send()/recv() donde el indicador MSG_OOB se permitía junto con otras opciones y no se filtraba por separado. Un error en la implementación de MSG_OOB permitía que se produjera una condición de uso después de la liberación tras ejecutar una secuencia de llamadas al sistema: char dummy; int calcetines[2]; socketpair(AF_UNIX, SOCK_STREAM, 0, calcetines); 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, MSG_OOB); send(socks[0], "A", 0, MSG_OOB); recv(socks[1], &dummy, XNUMX, XNUMX); recv(calcetines[XNUMX], &dummy, XNUMX, MSG_OOB);
Fuente: opennet.ru
