Riesgos de seguridad causados por la filtración del Valor Centinela en el motor Chrome V8
El valor centinela es un valor especial en algoritmos, a menudo utilizado como condición de terminación en algoritmos de bucle o recursivos. En el código fuente de Chrome hay múltiples valores centinela, algunos de los cuales no deben filtrarse en el entorno de JavaScript. Este artículo explorará cómo la filtración del objeto Oddball no inicializado puede eludir el mecanismo HardenProtect del motor Chrome V8.
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 se alinean adyacentes en la memoria. Una vez que estos objetos nativos que no deberían ser expuestos a JavaScript se filtran, puede resultar en la ejecución de código arbitrario dentro de la sandbox.
Podemos filtrar Uninitialized Oddball en JavaScript al modificar la función nativa de V8. Por ejemplo, modificando el desplazamiento de la función %TheHole() para que devuelva un objeto Uninitialized Oddball.
Eludir la protección HardenType
Utilizando objetos Uninitialized Oddball filtrados, se puede construir el siguiente código para lograr una lectura relativamente arbitraria:
javascript
function read(obj, idx) {
return obj[idx];
}
let arr = [1.1, 2.2, 3.3];
let uninitialized_oddball = %TheHole();
for (let i = 0; i < 100000; i++) {
read(arr, 0);
}
%OptimizeFunctionOnNextCall(leer);
let result = read(uninitialized_oddball, 0x12345);
%DebugPrint(resultado);
El código ensamblador de la función read optimizada muestra que al calcular el desplazamiento del array, no se verifica el tipo de valor de obj.prop, sino que se calcula directamente según la semántica de JavaScript, lo que provoca confusión de tipos y permite la lectura arbitraria.
La sugerencia de reparación es agregar una verificación del mapa del arreglo al devolver los elementos del arreglo en la función optimizada, para evitar calcular directamente el desplazamiento y devolver el valor.
Aviso de Riesgo de PatchGap
La vulnerabilidad aún no se ha corregido en algunos programas que utilizan versiones antiguas del motor V8, como Skype(. En la plataforma x86, debido a la falta de compresión de direcciones, la lectura y escritura arbitrarias se pueden realizar directamente en relación con todo el proceso.
La divulgación de este nuevo método de bypass ha reducido la dificultad de aprovechar las vulnerabilidades relacionadas. Los hackers pueden completar la explotación completa de la vulnerabilidad Uninitialized Oddball sin necesidad de investigación adicional.
![Revelación exclusiva sobre cómo eludir Chrome v8 HardenProtect a través de la filtración de Sentinel Value])https://img-cdn.gateio.im/webp-social/moments-1e3fda77c04bceafdcc40413824a5d37.webp(
Resumen
En V8 también existen otros valores Sentinel que pueden provocar problemas de seguridad similares. Se recomienda investigar más a fondo:
¿Se puede lograr RCE de V8 a través de otras filtraciones de Uninitialized Oddball?
¿Deberían estos problemas ser considerados oficialmente como vulnerabilidades de seguridad?
¿Es necesario incluir el valor centinela como variable en las pruebas de Fuzzer?
De todos modos, este tipo de problemas acortará significativamente el ciclo en el que los hackers pueden aprovecharse por completo, lo cual merece una alta atención.
![Revelación exclusiva sobre cómo el valor de Sentinel filtrado elude Chrome v8 HardenProtect])https://img-cdn.gateio.im/webp-social/moments-ed89289bebf59d4b27f5bffb5511a8c5.webp(
![Revelación exclusiva sobre cómo el valor de Sentinel filtrado elude Chrome v8 HardenProtect])https://img-cdn.gateio.im/webp-social/moments-0e52075003a8ee2ca492a5fc9f35c36b.webp(
![Revelación exclusiva sobre cómo el valor de Sentinel filtrado elude Chrome v8 HardenProtect])https://img-cdn.gateio.im/webp-social/moments-230537e420d579aabd89bdd168b20878.webp(
![Revelación exclusiva sobre cómo el valor de Sentinel filtrado elude Chrome v8 HardenProtect])https://img-cdn.gateio.im/webp-social/moments-506159c94c9e0988552cbcbd13d971e1.webp(
![Revelación exclusiva sobre cómo el valor de centinela filtrado elude Chrome v8 HardenProtect])https://img-cdn.gateio.im/webp-social/moments-e9e2000fd501b69ee3ee643a459a26dd.webp(
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.
18 me gusta
Recompensa
18
8
Republicar
Compartir
Comentar
0/400
GateUser-bd883c58
· 08-04 04:05
Este fallo es tan extremo que da un poco de miedo.
Ver originalesResponder0
SerumDegen
· 08-02 17:19
gm fren... otro alfa filtrado detectado en v8, todos estamos rekt
Ver originalesResponder0
ThatsNotARugPull
· 08-02 17:19
Esta olla Chrome, llévala. Ya te han mostrado el agujero.
Ver originalesResponder0
RektButStillHere
· 08-02 17:09
¿Por qué la protección de sandbox es tan mala?
Ver originalesResponder0
CryptoNomics
· 08-02 17:01
*suspiro* otro exploit que prueba que mi análisis de regresión sobre el modelo de seguridad de chrome fue estadísticamente significativo... sin embargo, nadie escuchó
Ver originalesResponder0
MetaverseHobo
· 08-02 16:58
Este agujero es demasiado atractivo, ¡directamente To the moon!
Riesgo de seguridad de la filtración del Valor Sentinel del motor V8 que elude HardenProtect
Riesgos de seguridad causados por la filtración del Valor Centinela en el motor Chrome V8
El valor centinela es un valor especial en algoritmos, a menudo utilizado como condición de terminación en algoritmos de bucle o recursivos. En el código fuente de Chrome hay múltiples valores centinela, algunos de los cuales no deben filtrarse en el entorno de JavaScript. Este artículo explorará cómo la filtración del objeto Oddball no inicializado puede eludir el mecanismo HardenProtect del motor Chrome V8.
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 se alinean adyacentes en la memoria. Una vez que estos objetos nativos que no deberían ser expuestos a JavaScript se filtran, puede resultar en la ejecución de código arbitrario dentro de la sandbox.
Podemos filtrar Uninitialized Oddball en JavaScript al modificar la función nativa de V8. Por ejemplo, modificando el desplazamiento de la función %TheHole() para que devuelva un objeto Uninitialized Oddball.
Eludir la protección HardenType
Utilizando objetos Uninitialized Oddball filtrados, se puede construir el siguiente código para lograr una lectura relativamente arbitraria:
javascript function read(obj, idx) { return obj[idx]; }
let arr = [1.1, 2.2, 3.3]; let uninitialized_oddball = %TheHole();
for (let i = 0; i < 100000; i++) { read(arr, 0);
}
%OptimizeFunctionOnNextCall(leer);
let result = read(uninitialized_oddball, 0x12345); %DebugPrint(resultado);
El código ensamblador de la función read optimizada muestra que al calcular el desplazamiento del array, no se verifica el tipo de valor de obj.prop, sino que se calcula directamente según la semántica de JavaScript, lo que provoca confusión de tipos y permite la lectura arbitraria.
La sugerencia de reparación es agregar una verificación del mapa del arreglo al devolver los elementos del arreglo en la función optimizada, para evitar calcular directamente el desplazamiento y devolver el valor.
Aviso de Riesgo de PatchGap
La vulnerabilidad aún no se ha corregido en algunos programas que utilizan versiones antiguas del motor V8, como Skype(. En la plataforma x86, debido a la falta de compresión de direcciones, la lectura y escritura arbitrarias se pueden realizar directamente en relación con todo el proceso.
La divulgación de este nuevo método de bypass ha reducido la dificultad de aprovechar las vulnerabilidades relacionadas. Los hackers pueden completar la explotación completa de la vulnerabilidad Uninitialized Oddball sin necesidad de investigación adicional.
![Revelación exclusiva sobre cómo eludir Chrome v8 HardenProtect a través de la filtración de Sentinel Value])https://img-cdn.gateio.im/webp-social/moments-1e3fda77c04bceafdcc40413824a5d37.webp(
Resumen
En V8 también existen otros valores Sentinel que pueden provocar problemas de seguridad similares. Se recomienda investigar más a fondo:
De todos modos, este tipo de problemas acortará significativamente el ciclo en el que los hackers pueden aprovecharse por completo, lo cual merece una alta atención.
![Revelación exclusiva sobre cómo el valor de Sentinel filtrado elude Chrome v8 HardenProtect])https://img-cdn.gateio.im/webp-social/moments-ed89289bebf59d4b27f5bffb5511a8c5.webp(
![Revelación exclusiva sobre cómo el valor de Sentinel filtrado elude Chrome v8 HardenProtect])https://img-cdn.gateio.im/webp-social/moments-0e52075003a8ee2ca492a5fc9f35c36b.webp(
![Revelación exclusiva sobre cómo el valor de Sentinel filtrado elude Chrome v8 HardenProtect])https://img-cdn.gateio.im/webp-social/moments-230537e420d579aabd89bdd168b20878.webp(
![Revelación exclusiva sobre cómo el valor de Sentinel filtrado elude Chrome v8 HardenProtect])https://img-cdn.gateio.im/webp-social/moments-506159c94c9e0988552cbcbd13d971e1.webp(
![Revelación exclusiva sobre cómo el valor de centinela filtrado elude Chrome v8 HardenProtect])https://img-cdn.gateio.im/webp-social/moments-e9e2000fd501b69ee3ee643a459a26dd.webp(