
CVE-2024-0519 root cause analysis
Artefatti di analisi delle cause profonde per CVE-2024-0519 (accesso alla memoria fuori dai limiti in V8, Chrome 120, sfruttato in natura).
Correzione: e0f2a195d87c9a06685121e0e783efd92d030df3 — Toon Verwaest, 2024-01-12
Versione V8 studiata: 12.0.267.16 (fbc4963bbff), ARM64 macOS
| Path | Descrizione |
|---|---|
harness/test-toctou-race.cc | cctest C++ che conferma la finestra di race condition TOCTOU in GetOwnFastDataPropertyFromHeap |
harness/test-toctou-chain.cc | cctest C++ che dimostra il filler incorporato come HeapConstant tramite il broker pipeline |
js/poc_325020448.js | Trigger JS a zero intrinseci per chromium:325020448 (bug gemello, nessun CVE pubblico) |
js/regress_325020448.js | Test di regressione ufficiale V8 per chromium:325020448 (richiede --allow-natives-syntax) |
patches/e0f2a195.md | Metadati del commit di correzione |
# 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
Vedi BUILD.md per le istruzioni di build.
Bug gemello nella stessa classe PropertyConstness::kConst — la costanza non è generalizzata attraverso le transizioni dei prototipi. Risolto da 496f467bb72 (19 febbraio 2024), cinque settimane dopo la correzione di CVE-2024-0519. Nessun CVE pubblico assegnato. Interessa Chrome 122 (dopo la patch di CVE-2024-0519) fino a Chrome 123.
js/poc_325020448.js lo attiva senza alcun flag V8 natives.