Architecture codegen violates zero-extension and ABI invariants
V8’s arm64/x64 code generation and low-level assembly mishandle zero-extension guarantees, callee-saved register widths, displacement overflow, register aliasing, and hidden clobbers. These break the ABI or representation invariants that later stages rely on, producing wrong code that leaves dirty high bits, unbalanced stacks, or clobbered registers. The downstream effect is out-of-bounds access or memory corruption.
Mechanism
Fix shape
CVEs in this pattern
3 components · V8, Codecs, Rust| CVE | What | Component | Vendor | Severity | Month | |
|---|---|---|---|---|---|---|
| CVE-2026-87444 | MemoryCorruption in Codecs | Codecs | chrome | High | 2026-09 | 🔧 |
| CVE-2026-87528 | TypeConfusion in Rust | Rust | chrome | Medium | 2026-09 | 🔧 |
| CVE-2026-95304 | OOB in V8 | V8 | chrome | High | 2026-09 | 🔧 |
| CVE-2026-19151 | UAF in V8 | V8 | chrome | High | 2026-08 | 🔧 |
| CVE-2026-82072 | OOB in V8 | V8 | chrome | Medium | 2026-07 | 🔧 |
| CVE-2026-14407 | LogicError in V8 | V8 | chrome | Medium | 2026-06 | 🔧 |
| CVE-2026-5873 | OOB in V8 | V8 | chrome | High | 2026-04 | 🔧 |
| CVE-2025-14766 | OOB in V8 | V8 | chrome | High | 2025-12 | 🔧 |
| CVE-2025-12441 | OOB in V8 | V8 | chrome | Medium | 2025-10 | 🔧 |
| CVE-2025-10585 | TypeConfusion in V8 | V8 | chrome | High | 2025-09 | ⚠️ 🔧 |
| CVE-2025-7656 | IntegerOverflow in V8 | V8 | chrome | High | 2025-07 | 🔧 |
Hunt for siblings
Commit-scanner flags codegen diffs touching zero-extension, Move/Mov, displacement folding, register comparison, or callee-saved masks; a differential codegen fuzzer comparing interpreter vs compiled results on arm64/x64 surfaces dirty-high-bit and clobber divergences.
Mitigations that would catch this class
- Require an explicit zero-extension property, not representation, before eliding extension moves
- Model register aliasing and callee-saved widths per the target ABI
- Guard displacement/offset folding against 32-bit overflow with signed-range checks