Stale pointer survives destruction order or cleanup path
An object is freed while a peer, guard, container, or asynchronous task still holds a pointer into it, or an error path skips the cleanup that a success path performs. The dangling reference is later used, read, or destroyed. The defect is one of static lifetime, destruction ordering, or error-path cleanup, with no re-entry into user code.
Mechanism
Fix shape
CVEs in this pattern
4 components · Skia, ANGLE, WebAudio, Fullscreen| CVE | What | Component | Vendor | Severity | Month | |
|---|---|---|---|---|---|---|
| CVE-2026-85049 | UAF in Skia | Skia | chrome | High | 2026-09 | 🔧 |
| CVE-2026-95325 | UAF in ANGLE | ANGLE | chrome | Medium | 2026-09 | 🔧 |
| CVE-2026-95343 | UAF in WebAudio | WebAudio | chrome | High | 2026-09 | 🔧 |
| CVE-2026-19176 | UAF in Skia | Skia | chrome | High | 2026-08 | 🔧 |
| CVE-2026-15774 | UAF in Skia | Skia | chrome | High | 2026-07 | 🔧 |
| CVE-2026-17653 | UAF in Skia | Skia | chrome | Critical | 2026-07 | 🔧 |
| CVE-2026-13788 | UAF in Fullscree | Fullscreen | chrome | Critical | 2026-06 | 🔧 |
| CVE-2026-14398 | UAF in ANGLE | ANGLE | chrome | Critical | 2026-06 | 🔧 |
| CVE-2026-9878 | UAF in ANGLE | ANGLE | chrome | Critical | 2026-05 | 🔧 |
Hunt for siblings
Auditor/fuzzer signal: delete this or destructor ordering near peers that hold native pointers, raw pointers into TArray/std::map elements crossing an insert/grow, or RAII destructors that only DCHECK/UNREACHABLE on error paths.
Mitigations that would catch this class
- Notify or detach peers before delete, and give lock guards explicit scopes ending before free
- Copy values out of reallocating containers rather than holding element pointers across mutation
- Make every ANGLE_TRY / early-return / link-failure path run the same cleanup and task-join as success