
Analyse de la cause racine de CVE-2024-0519
Artéfacts d'analyse des causes racines pour CVE-2024-0519 (accès mémoire hors limites dans V8, Chrome 120, exploité dans la nature).
Correctif : e0f2a195d87c9a06685121e0e783efd92d030df3 — Toon Verwaest, 2024-01-12
Version de V8 étudiée : 12.0.267.16 (fbc4963bbff), ARM64 macOS
| Chemin | Description |
|---|
harness/test-toctou-race.cc | C++ cctest confirmant la fenêtre de concurrence TOCTOU dans GetOwnFastDataPropertyFromHeap |
harness/test-toctou-chain.cc | C++ cctest démontrant un filler intégré comme HeapConstant via le pipeline du broker |
js/poc_325020448.js | Déclencheur JS sans intrinsèques pour chromium:325020448 (bogue frère, pas de CVE publique) |
js/regress_325020448.js | Test de régression officiel de V8 pour chromium:325020448 (nécessite --allow-natives-syntax) |
patches/e0f2a195.md | Métadonnées du commit de correctif |
# D8 pré-correctif (V8 12.0.267.16, un commit avant e0f2a195)
./d8 --concurrent-recompilation js/poc_325020448.js
# C++ cctests — intégrer dans la compilation cctest de V8, puis :
./cctest test-toctou-race/ToctouRaceDeleteProperty
./cctest test-toctou-chain/EndToEndChainInstallNoPatch
./cctest test-toctou-chain/ConsequenceJSConsumption
Voir BUILD.md pour les instructions de compilation.
Bogue frère dans la même classe PropertyConstness::kConst — la constance n'est pas généralisée entre les transitions de prototype. Corrigé par 496f467bb72 (19 février 2024), cinq semaines après le correctif CVE-2024-0519. Aucun CVE public attribué. Affecte Chrome 122 (après le patch CVE-2024-0519) jusqu'à Chrome 123.
js/poc_325020448.js le déclenche sans aucun indicateur V8 natif.