Explorando cómo eludir el mecanismo HardenProtect de Chrome v8 a través de la fuga de Sentinel Value
Introducción
El valor centinela es un valor especial en algoritmos, utilizado comúnmente como condición de terminación en algoritmos de bucle o recursivos. Este valor especial se utiliza ampliamente en el código fuente de Chrome. Recientemente, se ha demostrado que al filtrar el objeto TheHole se puede lograr una vulnerabilidad de ejecución de código arbitrario dentro de ciertas áreas de la sandbox de Chrome. Este artículo explorará otro objeto relacionado: Uninitialized Oddball, y cómo se utiliza para eludir los mecanismos de seguridad de Chrome.
Es importante señalar que la última versión del motor V8 todavía presenta este problema. Este método tiene una considerable versatilidad y puede afectar la dificultad de explotación de múltiples vulnerabilidades históricas.
Valor centinela en V8
En el código fuente de V8 se definen muchos objetos nativos que están dispuestos de manera adyacente en la memoria. Si estos objetos se exponen incorrectamente al entorno de JavaScript, puede provocar una fuga de la caja de arena. La fuga del objeto TheHole mencionado anteriormente es un caso típico.
Podemos verificar esto modificando la función nativa de V8. Por ejemplo, modificando el desplazamiento de la función %TheHole() para que devuelva un objeto Uninitialized Oddball.
Eludir la protección HardenType
El uso de objetos Oddball no inicializados puede permitir la lectura de memoria relativamente arbitraria. La clave está en que el código JavaScript optimizado no verifica correctamente las propiedades del objeto, calculando directamente el desplazamiento y accediendo a los elementos del array según la semántica de JavaScript, lo que provoca una confusión de tipos.
La solución propuesta es agregar una verificación del mapa del arreglo al optimizar la función que devuelve elementos del arreglo, para evitar calcular el desplazamiento directamente.
Aviso de Riesgo de PatchGap
El análisis ha descubierto que algunos software pueden tener problemas de PatchGap, que aún no han sido corregidos. Tomando Skype como ejemplo, debido a que sus archivos son grandes y se cargan directamente en la memoria, un atacante podría aprovecharse mediante la lectura y escritura en direcciones fijas.
La divulgación de este nuevo método de elusión podría reducir la dificultad de explotación de algunas vulnerabilidades históricas. Se recomienda a las partes relacionadas que reevaluen el software y las vulnerabilidades afectadas.
Resumen
Este artículo discute brevemente la posibilidad de realizar lecturas arbitrarias a través de la divulgación de valores centinela como Uninitialized Oddball. También existen otros valores centinela en V8 que podrían tener vulnerabilidades de seguridad similares. Esto nos sugiere:
Otras fugas de Uninitialized Oddball pueden llevar a la fuga de la sandbox de V8
La seguridad de la ubicación de este tipo de problemas aún no está clara.
Se puede considerar agregar el valor Sentinel como variable en las pruebas de fuzzer.
En cualquier caso, este tipo de problemas puede acortar significativamente el ciclo de explotación completo de un atacante, lo cual merece una atención considerable.
Esta página puede contener contenido de terceros, que se proporciona únicamente con fines informativos (sin garantías ni declaraciones) y no debe considerarse como un respaldo por parte de Gate a las opiniones expresadas ni como asesoramiento financiero o profesional. Consulte el Descargo de responsabilidad para obtener más detalles.
La vulnerabilidad de fuga de Sentinel Value en el motor Chrome V8 permite la evasión de la sandbox.
Explorando cómo eludir el mecanismo HardenProtect de Chrome v8 a través de la fuga de Sentinel Value
Introducción
El valor centinela es un valor especial en algoritmos, utilizado comúnmente como condición de terminación en algoritmos de bucle o recursivos. Este valor especial se utiliza ampliamente en el código fuente de Chrome. Recientemente, se ha demostrado que al filtrar el objeto TheHole se puede lograr una vulnerabilidad de ejecución de código arbitrario dentro de ciertas áreas de la sandbox de Chrome. Este artículo explorará otro objeto relacionado: Uninitialized Oddball, y cómo se utiliza para eludir los mecanismos de seguridad de Chrome.
Es importante señalar que la última versión del motor V8 todavía presenta este problema. Este método tiene una considerable versatilidad y puede afectar la dificultad de explotación de múltiples vulnerabilidades históricas.
Valor centinela en V8
En el código fuente de V8 se definen muchos objetos nativos que están dispuestos de manera adyacente en la memoria. Si estos objetos se exponen incorrectamente al entorno de JavaScript, puede provocar una fuga de la caja de arena. La fuga del objeto TheHole mencionado anteriormente es un caso típico.
Podemos verificar esto modificando la función nativa de V8. Por ejemplo, modificando el desplazamiento de la función %TheHole() para que devuelva un objeto Uninitialized Oddball.
Eludir la protección HardenType
El uso de objetos Oddball no inicializados puede permitir la lectura de memoria relativamente arbitraria. La clave está en que el código JavaScript optimizado no verifica correctamente las propiedades del objeto, calculando directamente el desplazamiento y accediendo a los elementos del array según la semántica de JavaScript, lo que provoca una confusión de tipos.
La solución propuesta es agregar una verificación del mapa del arreglo al optimizar la función que devuelve elementos del arreglo, para evitar calcular el desplazamiento directamente.
Aviso de Riesgo de PatchGap
El análisis ha descubierto que algunos software pueden tener problemas de PatchGap, que aún no han sido corregidos. Tomando Skype como ejemplo, debido a que sus archivos son grandes y se cargan directamente en la memoria, un atacante podría aprovecharse mediante la lectura y escritura en direcciones fijas.
La divulgación de este nuevo método de elusión podría reducir la dificultad de explotación de algunas vulnerabilidades históricas. Se recomienda a las partes relacionadas que reevaluen el software y las vulnerabilidades afectadas.
Resumen
Este artículo discute brevemente la posibilidad de realizar lecturas arbitrarias a través de la divulgación de valores centinela como Uninitialized Oddball. También existen otros valores centinela en V8 que podrían tener vulnerabilidades de seguridad similares. Esto nos sugiere:
En cualquier caso, este tipo de problemas puede acortar significativamente el ciclo de explotación completo de un atacante, lo cual merece una atención considerable.