Aplicación y riesgos de seguridad del Valor Centinela en Chrome V8
El Valor Centinela es un valor especial comúnmente utilizado en algoritmos, normalmente como condición de terminación en algoritmos de bucle o recursivos. Esta técnica se utiliza ampliamente en el código fuente de Chrome. Recientemente, los investigadores de seguridad han descubierto un método para lograr la ejecución arbitraria de código dentro del sandbox de Chrome mediante la filtración de objetos de Valor Centinela específicos.
En el motor V8, existen varios objetos nativos que no deberían filtrarse al entorno JavaScript. Además del objeto TheHole reportado anteriormente, este artículo se centra en el problema de filtración del objeto Uninitialized Oddball. Este método aún se puede utilizar en la última versión de V8 y no ha sido corregido.
Es notable que el método de explotación de objetos Uninitialized Oddball tiene una gran versatilidad. Varios exploits históricos (como CVE-2021-30551, CVE-2022-1486, etc.) involucran la filtración de tales objetos. El descubrimiento de este método podría reducir la dificultad de explotación de las vulnerabilidades relacionadas.
Al modificar las funciones nativas de V8, se puede filtrar fácilmente el objeto Uninitialized Oddball en el entorno de JavaScript. Usando este método, un atacante puede eludir el mecanismo de protección de refuerzo de tipos de V8, logrando operaciones de lectura y escritura de memoria relativamente arbitrarias.
En el código JavaScript optimizado, la práctica de calcular directamente el desplazamiento para devolver los valores del array sin verificar el map del array presenta un riesgo de seguridad. Se recomienda añadir una validación del map del array al devolver los elementos del array en la función optimizada para mejorar la seguridad.
El alcance del impacto de tales problemas puede exceder las expectativas. Algunas aplicaciones que utilizan versiones antiguas del motor V8 pueden seguir teniendo riesgos. Por ejemplo, hasta la fecha, Skype no ha solucionado esta vulnerabilidad. En sistemas de 32 bits, debido a la falta de un mecanismo de compresión de direcciones, los atacantes pueden encontrar más fácil realizar lecturas y escrituras de memoria arbitrarias.
En general, los problemas de seguridad relacionados con los Valores Centinela merecen más atención. No solo los objetos Uninitialized Oddball y TheHole pueden presentar riesgos de seguridad, otros Valores Centinela también pueden tener riesgos similares. Se recomienda incluir estos valores especiales en el alcance de las pruebas de fuzzing para descubrir posibles vías de explotación.
Independientemente de si estos problemas se consideran oficialmente como vulnerabilidades de seguridad, pueden reducir significativamente el tiempo que los atacantes tardan en aprovecharse completamente. Por lo tanto, las partes relevantes deben permanecer alerta y reparar oportunamente los riesgos potenciales.
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.
Análisis de la vulnerabilidad de fuga de valor centinela del motor Chrome V8 y riesgos de seguridad
Aplicación y riesgos de seguridad del Valor Centinela en Chrome V8
El Valor Centinela es un valor especial comúnmente utilizado en algoritmos, normalmente como condición de terminación en algoritmos de bucle o recursivos. Esta técnica se utiliza ampliamente en el código fuente de Chrome. Recientemente, los investigadores de seguridad han descubierto un método para lograr la ejecución arbitraria de código dentro del sandbox de Chrome mediante la filtración de objetos de Valor Centinela específicos.
En el motor V8, existen varios objetos nativos que no deberían filtrarse al entorno JavaScript. Además del objeto TheHole reportado anteriormente, este artículo se centra en el problema de filtración del objeto Uninitialized Oddball. Este método aún se puede utilizar en la última versión de V8 y no ha sido corregido.
Es notable que el método de explotación de objetos Uninitialized Oddball tiene una gran versatilidad. Varios exploits históricos (como CVE-2021-30551, CVE-2022-1486, etc.) involucran la filtración de tales objetos. El descubrimiento de este método podría reducir la dificultad de explotación de las vulnerabilidades relacionadas.
Al modificar las funciones nativas de V8, se puede filtrar fácilmente el objeto Uninitialized Oddball en el entorno de JavaScript. Usando este método, un atacante puede eludir el mecanismo de protección de refuerzo de tipos de V8, logrando operaciones de lectura y escritura de memoria relativamente arbitrarias.
En el código JavaScript optimizado, la práctica de calcular directamente el desplazamiento para devolver los valores del array sin verificar el map del array presenta un riesgo de seguridad. Se recomienda añadir una validación del map del array al devolver los elementos del array en la función optimizada para mejorar la seguridad.
El alcance del impacto de tales problemas puede exceder las expectativas. Algunas aplicaciones que utilizan versiones antiguas del motor V8 pueden seguir teniendo riesgos. Por ejemplo, hasta la fecha, Skype no ha solucionado esta vulnerabilidad. En sistemas de 32 bits, debido a la falta de un mecanismo de compresión de direcciones, los atacantes pueden encontrar más fácil realizar lecturas y escrituras de memoria arbitrarias.
En general, los problemas de seguridad relacionados con los Valores Centinela merecen más atención. No solo los objetos Uninitialized Oddball y TheHole pueden presentar riesgos de seguridad, otros Valores Centinela también pueden tener riesgos similares. Se recomienda incluir estos valores especiales en el alcance de las pruebas de fuzzing para descubrir posibles vías de explotación.
Independientemente de si estos problemas se consideran oficialmente como vulnerabilidades de seguridad, pueden reducir significativamente el tiempo que los atacantes tardan en aprovecharse completamente. Por lo tanto, las partes relevantes deben permanecer alerta y reparar oportunamente los riesgos potenciales.