Garbage collector traversal and marking invariants violated
V8’s heap-snapshot traversal, concurrent marking, and no-allocation scopes are violated by allocation during traversal, torn or misordered bitmap reads and writes, or stale raw pointers held across a GC. This lets the marker see partial state, miss strong fields, or free live objects. The outcome is a use-after-free or read of uninitialized memory.
Mechanism
Fix shape
CVEs in this pattern
2 components · V8, Bindings| CVE | What | Component | Vendor | Severity | Month | |
|---|---|---|---|---|---|---|
| CVE-2026-95353 | UAF in Bindings | Bindings | chrome | Medium | 2026-09 | 🔧 |
| CVE-2026-19556 | UAF in V8 | V8 | chrome | High | 2026-08 | 🔧 |
| CVE-2026-79097 | UAF in V8 | V8 | chrome | Medium | 2026-08 | 🔧 |
| CVE-2026-17729 | UAF in V8 | V8 | chrome | Medium | 2026-07 | 🔧 |
| CVE-2026-10963 | IntegerOverflow in V8 | V8 | chrome | High | 2026-06 | 🔧 |
| CVE-2026-11050 | UAF in V8 | V8 | chrome | Medium | 2026-06 | 🔧 |
| CVE-2026-11650 | UAF in V8 | V8 | chrome | High | 2026-06 | 🔧 |
| CVE-2026-14409 | LogicError in V8 | V8 | chrome | Low | 2026-06 | 🔧 |
| CVE-2026-14415 | LogicError in V8 | V8 | chrome | Low | 2026-06 | 🔧 |
| CVE-2026-14432 | UAF in V8 | V8 | chrome | Medium | 2026-06 | 🔧 |
| CVE-2026-9896 | OOB in V8 | V8 | chrome | High | 2026-05 | 🔧 |
Hunt for siblings
Commit-scanner flags release-ordered bitmap stores, raw pointers spanning an Allocate call, and IterateBody edits; TSAN plus a snapshot/marking stress harness with concurrent allocation surfaces the torn reads and freed-live objects.
Mitigations that would catch this class
- Order object-start and mark-bit writes with seq_cst / CAS while marking is active
- Enforce AllowAllocation::kNo across snapshot and no-alloc traversal paths
- Recompute movable-object addresses from stable field offsets after any allocation