Filtración de valor centinela y eludir HardenProtect de Chrome V8
En el código fuente de Chrome existen numerosos valores centinela, que en los algoritmos suelen utilizarse como condiciones de terminación para bucles o recursiones. Investigaciones recientes han demostrado que la filtración de ciertos valores centinela podría permitir la ejecución de código arbitrario dentro del sandbox de Chrome.
Además del objeto conocido como TheHole, hay otros objetos nativos en V8 que no deberían filtrarse al entorno de JavaScript. Este artículo se centra en el objeto Uninitialized Oddball, cuyo método de elusión todavía se puede aplicar en la última versión de V8 y que aún no ha sido corregido.
Es importante notar que este método tiene una amplia aplicabilidad. En múltiples vulnerabilidades reportadas, la filtración de Uninitialized Oddball podría llevar a la ejecución remota de código. Esto resalta la necesidad de realizar una auditoría exhaustiva del software que podría verse afectado por PatchGap.
La mayoría de los objetos nativos en V8 están definidos en el archivo v8/src/roots/roots.h, y se organizan de manera adyacente en la memoria. Una vez que estos objetos se exponen erróneamente a JavaScript, puede lograrse la ejecución de cualquier código dentro de la sandbox.
Para validar este método, podemos modificar las funciones nativas de V8 para que devuelvan un objeto Oddball no inicializado. De esta manera, podemos lograr una lectura de memoria relativamente arbitraria en la última versión de V8.
El núcleo de este método de elusión radica en que la función de JavaScript optimizada, al acceder a los elementos del array, no verifica adecuadamente la información del tipo del array, sino que calcula directamente el desplazamiento para obtener el valor. Esto conduce a una confusión de tipos, lo que permite la lectura arbitraria.
La solución de reparación sugerida es agregar una verificación del mapa del arreglo al devolver los elementos del arreglo en la función optimizada, evitando así devolver valores del arreglo mediante cálculos de desplazamiento.
Además, también necesitamos prestar atención a los posibles problemas de PatchGap que pueden existir en la cadena de suministro de software. Algunos software ampliamente utilizados pueden no haber solucionado este tipo de vulnerabilidades, lo que proporciona a los atacantes una posible puerta de entrada.
En general, existen varios valores Sentinel en V8, cuya filtración podría provocar problemas de seguridad. Las direcciones de investigación futuras podrían incluir: explorar el impacto de otras filtraciones de Uninitialized Oddball, evaluar la viabilidad de introducir valores Sentinel como variables en pruebas de fuzzing, y examinar de manera más integral los problemas de seguridad relacionados. Independientemente de si estos problemas se clasifican formalmente como vulnerabilidades de seguridad, podrían acortar significativamente el tiempo que tarda un atacante en lograr una explotación completa.
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.
9 me gusta
Recompensa
9
5
Republicar
Compartir
Comentar
0/400
LiquidatedDreams
· hace11h
Otra ola de agujeros... ¿por qué Chrome, que está tan mal, no se arregla?
Ver originalesResponder0
GasWaster
· hace11h
Hay tantas vulnerabilidades en la caja, la familia es un payaso.
Ver originalesResponder0
GasOptimizer
· hace11h
Las vulnerabilidades de recursión representan el 89.4% de la probabilidad de incidentes de seguridad.
Ver originalesResponder0
FallingLeaf
· hace11h
Con una vulnerabilidad tan grande, ¡el navegador ya no es seguro!
La filtración de Valor Sentinel del motor Chrome V8 provoca un riesgo de escape de la sandbox.
Filtración de valor centinela y eludir HardenProtect de Chrome V8
En el código fuente de Chrome existen numerosos valores centinela, que en los algoritmos suelen utilizarse como condiciones de terminación para bucles o recursiones. Investigaciones recientes han demostrado que la filtración de ciertos valores centinela podría permitir la ejecución de código arbitrario dentro del sandbox de Chrome.
Además del objeto conocido como TheHole, hay otros objetos nativos en V8 que no deberían filtrarse al entorno de JavaScript. Este artículo se centra en el objeto Uninitialized Oddball, cuyo método de elusión todavía se puede aplicar en la última versión de V8 y que aún no ha sido corregido.
Es importante notar que este método tiene una amplia aplicabilidad. En múltiples vulnerabilidades reportadas, la filtración de Uninitialized Oddball podría llevar a la ejecución remota de código. Esto resalta la necesidad de realizar una auditoría exhaustiva del software que podría verse afectado por PatchGap.
La mayoría de los objetos nativos en V8 están definidos en el archivo v8/src/roots/roots.h, y se organizan de manera adyacente en la memoria. Una vez que estos objetos se exponen erróneamente a JavaScript, puede lograrse la ejecución de cualquier código dentro de la sandbox.
Para validar este método, podemos modificar las funciones nativas de V8 para que devuelvan un objeto Oddball no inicializado. De esta manera, podemos lograr una lectura de memoria relativamente arbitraria en la última versión de V8.
El núcleo de este método de elusión radica en que la función de JavaScript optimizada, al acceder a los elementos del array, no verifica adecuadamente la información del tipo del array, sino que calcula directamente el desplazamiento para obtener el valor. Esto conduce a una confusión de tipos, lo que permite la lectura arbitraria.
La solución de reparación sugerida es agregar una verificación del mapa del arreglo al devolver los elementos del arreglo en la función optimizada, evitando así devolver valores del arreglo mediante cálculos de desplazamiento.
Además, también necesitamos prestar atención a los posibles problemas de PatchGap que pueden existir en la cadena de suministro de software. Algunos software ampliamente utilizados pueden no haber solucionado este tipo de vulnerabilidades, lo que proporciona a los atacantes una posible puerta de entrada.
En general, existen varios valores Sentinel en V8, cuya filtración podría provocar problemas de seguridad. Las direcciones de investigación futuras podrían incluir: explorar el impacto de otras filtraciones de Uninitialized Oddball, evaluar la viabilidad de introducir valores Sentinel como variables en pruebas de fuzzing, y examinar de manera más integral los problemas de seguridad relacionados. Independientemente de si estos problemas se clasifican formalmente como vulnerabilidades de seguridad, podrían acortar significativamente el tiempo que tarda un atacante en lograr una explotación completa.