
CVE-2024-0519 root cause analysis
Artefatos de análise de causa raiz para CVE-2024-0519 (acesso de memória fora dos limites no V8, Chrome 120, explorado na natureza).
Correção: e0f2a195d87c9a06685121e0e783efd92d030df3 — Toon Verwaest, 2024-01-12
Versão do V8 estudada: 12.0.267.16 (fbc4963bbff), ARM64 macOS
| Caminho | Descrição |
|---|---|
harness/test-toctou-race.cc | C++ cctest confirmando a janela de race condition TOCTOU em GetOwnFastDataPropertyFromHeap |
harness/test-toctou-chain.cc | C++ cctest demonstrando filler incorporado como HeapConstant via pipeline do broker |
js/poc_325020448.js | Gatilho JS Zero-intrinsics para chromium:325020448 (bug irmão, sem CVE público) |
js/regress_325020448.js | Teste de regressão oficial do V8 para chromium:325020448 (requer --allow-natives-syntax) |
patches/e0f2a195.md | Metadados do commit de correção |
# 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
Consulte BUILD.md para instruções de compilação.
Bug irmão na mesma classe PropertyConstness::kConst — constância não generalizada através de transições de protótipo. Corrigido por 496f467bb72 (19 de fevereiro de 2024), cinco semanas após a correção do CVE-2024-0519. Nenhum CVE público atribuído. Afeta o Chrome 122 (pós-patch do CVE-2024-0519) até o Chrome 123.
js/poc_325020448.js o aciona sem nenhuma flag de natives do V8.