Aplicación del Valor Centinela en Chrome V8 y sus riesgos de seguridad
En el motor V8 existen varios objetos Sentinel Value especiales, como TheHole y Uninitialized Oddball. Estos objetos no deberían filtrarse en el entorno de JavaScript, pero ciertas vulnerabilidades pueden hacer que se expongan, lo que podría generar problemas de seguridad.
Recientemente, investigadores han descubierto que es posible eludir el mecanismo de protección HardenType de V8 mediante la divulgación de objetos Uninitialized Oddball. Este método apareció por primera vez en un informe de problemas presentado por un miembro del equipo Project Zero y sigue siendo efectivo en la última versión de V8.
Este método de evasión es universal y se puede utilizar para explotar múltiples vulnerabilidades históricas, como CVE-2021-30551 y CVE-2022-1486. Reduce la dificultad de la explotación de vulnerabilidades, de modo que la mera divulgación de un objeto Oddball no inicializado podría llevar a la ejecución remota de código.
Para verificar este método, se puede modificar la función nativa %TheHole() de V8 para que devuelva un objeto Oddball no inicializado. Las pruebas muestran que esto puede lograr una lectura de memoria relativamente arbitraria.
En el código JavaScript optimizado, V8 no comprueba adecuadamente el tipo de los elementos del array, calculando y devolviendo el valor directamente por desplazamiento, lo que lleva a la confusión de tipos y lecturas arbitrarias. Se sugiere agregar una verificación del map del array durante el proceso de optimización para evitar esta situación.
El descubrimiento de este método de elusión destaca algunos problemas importantes:
Otras filtraciones de objetos Sentinel Value también pueden ser igual de peligrosas
Existe controversia sobre si los problemas relacionados deben considerarse como vulnerabilidades de seguridad oficiales.
En las pruebas de fuzzing se puede considerar introducir el Valor Centinela como una variable.
De todos modos, este tipo de problemas acortará considerablemente el ciclo de tiempo que los hackers necesitan para aprovecharse completamente, lo cual merece una gran atención. Los proveedores de software relacionados deben reparar lo antes posible las versiones afectadas para reducir el riesgo potencial.
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.
8 me gusta
Recompensa
8
4
Republicar
Compartir
Comentar
0/400
TerraNeverForget
· hace14h
El navegador tiene un gran problema otra vez.
Ver originalesResponder0
BearHugger
· hace14h
¿Otra vez el agujero de V8? Este error realmente es absurdo.
Ver originalesResponder0
MintMaster
· hace15h
¡Vaya! Echemos un vistazo a la vulnerabilidad de núcleo duro.
La filtración del Valor Sentinel del motor V8 plantea riesgos de seguridad, se debe tener precaución.
Aplicación del Valor Centinela en Chrome V8 y sus riesgos de seguridad
En el motor V8 existen varios objetos Sentinel Value especiales, como TheHole y Uninitialized Oddball. Estos objetos no deberían filtrarse en el entorno de JavaScript, pero ciertas vulnerabilidades pueden hacer que se expongan, lo que podría generar problemas de seguridad.
Recientemente, investigadores han descubierto que es posible eludir el mecanismo de protección HardenType de V8 mediante la divulgación de objetos Uninitialized Oddball. Este método apareció por primera vez en un informe de problemas presentado por un miembro del equipo Project Zero y sigue siendo efectivo en la última versión de V8.
Este método de evasión es universal y se puede utilizar para explotar múltiples vulnerabilidades históricas, como CVE-2021-30551 y CVE-2022-1486. Reduce la dificultad de la explotación de vulnerabilidades, de modo que la mera divulgación de un objeto Oddball no inicializado podría llevar a la ejecución remota de código.
Para verificar este método, se puede modificar la función nativa %TheHole() de V8 para que devuelva un objeto Oddball no inicializado. Las pruebas muestran que esto puede lograr una lectura de memoria relativamente arbitraria.
En el código JavaScript optimizado, V8 no comprueba adecuadamente el tipo de los elementos del array, calculando y devolviendo el valor directamente por desplazamiento, lo que lleva a la confusión de tipos y lecturas arbitrarias. Se sugiere agregar una verificación del map del array durante el proceso de optimización para evitar esta situación.
El descubrimiento de este método de elusión destaca algunos problemas importantes:
De todos modos, este tipo de problemas acortará considerablemente el ciclo de tiempo que los hackers necesitan para aprovecharse completamente, lo cual merece una gran atención. Los proveedores de software relacionados deben reparar lo antes posible las versiones afectadas para reducir el riesgo potencial.