
CVE-2024-0519 root cause analysis
Artefactos de análisis de causa raíz para CVE-2024-0519 (acceso a memoria fuera de los límites en V8, Chrome 120, explotado activamente).
Corrección: e0f2a195d87c9a06685121e0e783efd92d030df3 — Toon Verwaest, 2024-01-12
Versión de V8 estudiada: 12.0.267.16 (fbc4963bbff), ARM64 macOS
| Path | Descripción |
|---|---|
harness/test-toctou-race.cc | Prueba cctest en C++ que confirma la ventana de carrera TOCTOU en GetOwnFastDataPropertyFromHeap |
harness/test-toctou-chain.cc | Prueba cctest en C++ que demuestra un filler incrustado como HeapConstant mediante el pipeline del broker |
js/poc_325020448.js | Trigger JS zero-intrinsics para chromium:325020448 (bug hermano, sin CVE público) |
js/regress_325020448.js | Prueba de regresión oficial de V8 para chromium:325020448 (requiere --allow-natives-syntax) |
patches/e0f2a195.md | Metadatos del commit de corrección |
# Pre-patch d8 (V8 12.0.267.16, one commit before e0f2a195)
./d8 --concurrent-recompilation js/poc_325020448.js
# C++ cctests — integrate into V8 cctest build, then:
./cctest test-toctou-race/ToctouRaceDeleteProperty
./cctest test-toctou-chain/EndToEndChainInstallNoPatch
./cctest test-toctou-chain/ConsequenceJSConsumption
Consulta BUILD.md para las instrucciones de compilación.
Bug hermano en la misma clase PropertyConstness::kConst — la constness no se generalizaba entre las transiciones de prototipo. Corregido por 496f467bb72 (19 de febrero de 2024), cinco semanas después de la corrección de CVE-2024-0519. Sin CVE público asignado. Afecta a Chrome 122 (posterior al parche de CVE-2024-0519) hasta Chrome 123.
js/poc_325020448.js lo desencadena sin ninguna flag de natives de V8.