Exploración de la filtración de valores centinela del motor Chrome V8 y análisis de riesgos de seguridad

Investigación sobre los riesgos de seguridad causados por la filtración de Sentinel Value en el motor Chrome V8

Introducción

El valor centinela es un tipo de valor especial en algoritmos, que se utiliza 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, investigadores lograron ejecutar código arbitrario en la sandbox a través de la filtración del objeto TheHole, lo que llevó a CVE-2021-38003 y CVE-2022-1364. El equipo de Google rápidamente corrigió estas dos vulnerabilidades.

Sin embargo, además del objeto TheHole, existen otros objetos nativos en V8 que no deberían filtrarse a JavaScript. Este artículo se centrará en el objeto Uninitialized Oddball y explicará cómo aprovecharlo para eludir el mecanismo HardenProtect de V8. Es importante señalar que este método de elusión aún es aplicable a la última versión de V8 y no ha sido corregido.

Valor Centinela en V8

La mayoría de los objetos nativos de V8 están definidos en el archivo v8/src/roots/roots.h, y estos objetos están dispuestos secuencialmente en la memoria. Una vez que estos objetos nativos que no deberían filtrarse en JavaScript se filtran, podría dar lugar a la ejecución de cualquier código dentro de la sandbox.

Para verificar esto, podemos modificar la función nativa de V8 para filtrar Oddball no inicializado en JavaScript. La forma específica es modificar el desplazamiento relativo al aislamiento en la función %TheHole() para que devuelva Oddball no inicializado.

Revelación exclusiva sobre cómo el valor de Sentinel se filtró para eludir Chrome v8 HardenProtect

Eludir la protección HardenType

El uso de objetos Uninitialized Oddball permite realizar lecturas y escrituras relativamente arbitrarias. En el código JavaScript optimizado, la función read no verifica el valor con la clave obj.prop, sino que calcula directamente el desplazamiento según la semántica de JavaScript para obtener el valor del array. Esto provoca una confusión de tipos durante el cálculo, lo que permite realizar lecturas arbitrarias.

Revelación exclusiva sobre cómo el valor de Sentinel filtrado elude el Chrome v8 HardenProtect

Para cualquier operación de escritura, se puede referir al método de construcción en el Issue1352549 para su análisis. La solución de reparación sugerida es agregar una verificación del mapa del arreglo al devolver elementos del arreglo en la función optimizada, evitando calcular directamente el desplazamiento para devolver valores del arreglo.

Revelación exclusiva sobre cómo el valor del centinela se filtró para eludir Chrome v8 HardenProtect

Revelación exclusiva sobre cómo eludir Chrome v8 HardenProtect a través de la filtración de Sentinel Value

Revelación exclusiva sobre cómo el valor del centinela filtrado elude Chrome v8 HardenProtect

Advertencia de PatchGap

Después de analizar el Issue1352549, descubrimos que algunos software pueden tener problemas de PatchGap. Es notable que, hasta ahora, Skype aún no ha corregido esta vulnerabilidad. En un entorno x86, la implementación de lectura y escritura arbitrarias puede variar, ya que no hay compresión de direcciones, lo que permite operar directamente en relación con todo el proceso.

Revelación exclusiva sobre cómo el valor de Sentinel se filtró para eludir Chrome v8 HardenProtect

El problema de PatchGap no solo involucra el Issue1352549, la publicación de un nuevo método de bypass también ha reducido drásticamente la dificultad de explotar vulnerabilidades como Issue1314616 y Issue1216437. Los hackers casi no necesitan ningún costo de investigación para llevar a cabo una explotación completa de cualquier fuga del vulnerabilidad uninitialized_oddball.

Revelación exclusiva sobre cómo el valor del centinela se filtró para eludir Chrome v8 HardenProtect

Revelación exclusiva sobre cómo el valor de centinela filtrado elude Chrome v8 HardenProtect

Resumen

Este artículo discute brevemente el método para realizar lecturas arbitrarias mediante la filtración de uninitialized_Oddball en el valor Sentinel. También existen muchos otros valores Sentinel en V8 que podrían causar problemas de seguridad similares. Esto nos da las siguientes conclusiones:

  1. ¿También se puede lograr fácilmente la ejecución remota de código de V8 a través de otras fugas uninitialized_Oddball?

  2. Existe controversia sobre si este tipo de problemas debe considerarse una cuestión de seguridad formal.

  3. Considerar agregar valores centinela como %TheHole/uninitialized_Oddball como variables en el fuzzer para explorar otros usos de los primitivos.

Independientemente de si este tipo de problemas se consideran oficialmente problemas de seguridad, acortan significativamente el ciclo que los hackers necesitan para lograr una explotación completa.

Exclusiva: Revelación sobre cómo el valor de Sentinel se filtró para eludir Chrome v8 HardenProtect

SENC2.28%
Ver originales
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.
  • Recompensa
  • 6
  • Republicar
  • Compartir
Comentar
0/400
FUD_Vaccinatedvip
· 07-26 03:20
Otra vez Google, este agujero es demasiado frecuente 8
Ver originalesResponder0
MetaverseLandlordvip
· 07-24 11:22
¡Vaya, las vulnerabilidades de los navegadores de otros son tan avanzadas!
Ver originalesResponder0
SerNgmivip
· 07-23 05:34
Verdaderamente, el v8 me está causando dolor de cabeza...
Ver originalesResponder0
GateUser-a606bf0cvip
· 07-23 05:34
¿Hmm? ¿Chrome está causando problemas de nuevo?
Ver originalesResponder0
StablecoinAnxietyvip
· 07-23 05:15
¡Qué emocionante es la brecha de seguridad del navegador!
Ver originalesResponder0
PonziDetectorvip
· 07-23 05:11
¡Vaya, esta vulnerabilidad de V8 es bastante grave!
Ver originalesResponder0
Opere con criptomonedas en cualquier momento y lugar
qrCode
Escanee para descargar la aplicación Gate
Comunidad
Español
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)