Use-after-free in Ladybird FinalizationRegistry cleanup
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- Required
- Attack complexity
- Low
- Impact type
- Code execution
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA. Impact type from CWE-416 and the CVSS impact.
Summary
Ladybird builds before commit 209579c96473c75bd5eba9701fcadb841a045964 contain a use-after-free in FinalizationRegistry::cleanup() (CWE-416). A cleanup callback that calls unregister() on the next record frees a node that the cleanup loop still references, and the loop then reads its fields. An remote attacker needs no privileges, but the user must interact with the attacker's page to trigger it. The flaw reliably crashes instrumented WebContent builds and gives an attacker a memory-corruption primitive in production builds.
Written with Claude Haiku 5.5 from the sources below · 2026-11-06
Description from the CNA
Ladybird is a truly independent web browser. Prior to 209579c96473c75bd5eba9701fcadb841a045964, FinalizationRegistry::cleanup() in Libraries/LibJS/Runtime/FinalizationRegistry.cpp removed a dead record from m_records, retained an iterator to the next FinalizationRecord, and then invoked attacker-controlled JavaScript through the cleanup callback. If that callback called unregister() for the next record, remove_by_token() freed the node referenced by the retained iterator, and the next cleanup iteration read its target and held_value fields after free. This reliably crashes instrumented WebContent builds and creates a memory-corruption primitive in production builds. This vulnerability is fixed by commit 209579c96473c75bd5eba9701fcadb841a045964.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| LadybirdBrowser | ladybird | before 209579c96473c75bd5eba9701fcadb841a045964 | 209579c96473c75bd5eba9701fcadb841a045964 | Patch available | CNA |
- ladybird VendorLadybirdBrowser Affected before 209579c96473c75bd5eba9701fcadb841a045964 Fixed in 209579c96473c75bd5eba9701fcadb841a045964 Patch available CNA
Remediation
The fix is commit 209579c96473c75bd5eba9701fcadb841a045964, so builds from that commit onward are not affected. Update Ladybird to a build that includes this commit.
Written with Claude Haiku 5.5 from the sources below · 2026-11-06
- Fix · CNA ladybird (LadybirdBrowser) Fixed in 209579c96473c75bd5eba9701fcadb841a045964
Timeline
- 2026-10-30 Threatist record created from CVE-2026-119332
- 2026-11-01 Priority changed: MEDIUM → LOW
- 2026-11-06 CISA SSVC decision points changed
- 2026-11-06 Priority changed: LOW → HIGH
References
More LadybirdBrowser vulnerabilities
- TI-2026-42172 Ladybird - Web-Reachable Code Execution via Dangling FunctionType Reference in WebAssembly ESM Integration CVSS 4.0HIGH 8.9
- TI-2026-83370 Missing origin-clean checks in Ladybird CSSStyleSheet CVSS 3.1HIGH 7.1
Sources
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences