Análisis profundo de los riesgos de seguridad del Valor Sentinel del motor Chrome V8

robot
Generación de resúmenes en curso

Profundizando en el impacto de seguridad del Sentinel Value en el motor Chrome V8

El valor centinela es un tipo de valor especial en algoritmos, a menudo utilizado como condición de terminación en bucles o algoritmos recursivos. En el código fuente de Chrome existen varios valores centinela. Investigaciones anteriores han demostrado que se puede lograr la ejecución de código arbitrario dentro de la sandbox de Chrome mediante la filtración del objeto TheHole. Posteriormente, el equipo de Google corrigió las vulnerabilidades relacionadas.

Sin embargo, también existen otros objetos nativos en V8 que no deberían ser revelados a JavaScript. Este artículo discutirá el objeto Uninitialized Oddball, cuyo método de elusión apareció por primera vez en el Issue1352549. Es importante señalar que este método aún se puede utilizar en la última versión de V8 y no ha sido corregido.

Este método tiene cierta universalidad:

  1. Issue1216437(CVE-2021-30551) presentó por primera vez un poc que revela un oddball interno no inicializado.

  2. Issue1314616(CVE-2022-1486) también reveló directamente UninitializedOddball.

  3. El impacto del Issue1352549(NoCVE) merece atención.

Estos casos indican que es necesario revisar el software que podría verse afectado por PatchGap. Actualmente, Skype aún no ha solucionado esta vulnerabilidad.

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

Para verificar este método, podemos modificar la función nativa de V8, para filtrar Uninitialized Oddball a JavaScript. En concreto, se puede modificar el desplazamiento relativo al isolate en la función %TheHole(), de modo que devuelva Uninitialized Oddball.

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

Utilizando este método se puede eludir la protección HardenType, logrando una lectura y escritura relativamente arbitrarias. Al analizar el código JavaScript optimizado, se puede observar que al verificar obj.prop no se valida el valor de la clave obj.prop, simplemente se calcula el desplazamiento según la semántica de JavaScript y se obtiene el valor del arreglo, lo que provoca una confusión de tipos.

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

Debido a que uninitialized_oddball está ordenado más alto y es más primitivo en la memoria de V8, es más fácil de falsificar que el objeto TheHole. Una vez que se repararon las mitigaciones relacionadas con TheHole, este método se convirtió en la opción preferida para eludir.

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

Se sugiere agregar una verificación del mapa de la matriz al devolver los elementos de la matriz en la función optimizada, para evitar calcular directamente el desplazamiento y devolver valores.

Es importante señalar que Skype aún no ha corregido esta vulnerabilidad. En sistemas x86, debido a la falta de compresión de direcciones, la lectura y escritura arbitrarias son relativas a todo el proceso. Aunque Skype ha habilitado ASLR, debido al tamaño del archivo, los hackers solo necesitan leer y escribir en direcciones fijas, lo que les da una alta probabilidad de acceder al contenido de los archivos de Skype. Esto reduce significativamente la dificultad para completar una cadena de explotación completa.

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

Este PatchGap no solo está relacionado con el Issue1352549, la divulgación de un nuevo método de bypass también ha reducido significativamente la dificultad de explotar vulnerabilidades como el Issue1314616 y el Issue1216437. Los hackers casi no necesitan investigar adicionalmente para explotar completamente cualquier vulnerabilidad de uninitialized_oddball que haya sido filtrada anteriormente.

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

En V8 también existen otros valores Sentinel que pueden presentar riesgos de seguridad similares. Se recomienda considerar la inclusión de valores Sentinel como %TheHole/uninitialized_Oddball como variables en las pruebas de fuzz para descubrir otras posibles primitivas de explotación.

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

Independientemente de si este tipo de problemas se consideran oficialmente problemas de seguridad, acortan significativamente el período en el que los hackers pueden explotar completamente. Necesitamos seguir prestando atención y estudiando este campo para mejorar la seguridad de software como Chrome.

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

Revelación exclusiva sobre cómo el valor de Sentinel se filtra 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

SENC-9.53%
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
  • 3
  • Republicar
  • Compartir
Comentar
0/400
GateUser-00be86fcvip
· hace3h
Oye, v8 ha expuesto un pequeño fallo de nuevo.
Ver originalesResponder0
Blockblindvip
· hace3h
Este bug ha estado sin arreglar tanto tiempo, ¡es impresionante!
Ver originalesResponder0
ImpermanentSagevip
· hace3h
¡Vaya! Otra vez una vulnerabilidad de ejecución de código.
Ver originalesResponder0
  • Anclado
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)