VulnerabilityGLOBAL

CVE-2026-115895: Happy DOM is a JavaScript implementation of a web browser without its graphical user interface. From 17.0.0 until 21.0.4…

Happy DOM is a JavaScript implementation of a web browser without its graphical user interface. From 17.0.0 until 21.0.4, packages/happy-dom/src/module/ECMAScriptModuleCompiler.ts accepts a named ESM import alias without validating that it is a JavaScript binding identifier before inserting it into a generated destructuring binding. With enableJavaScriptEvaluation enabled, attacker-controlled HTML or module source can use an invalid alias that becomes a valid default initializer after compilation, causing the generated JavaScript to execute in the Node.js host process. The demonstrated reachable path uses a JSON module import attribute, which prevents the malicious alias from being emitted again in a later ESM circular-import assignment and keeps the generated function syntactically valid. This incomplete fix for CVE-2026-33943 is a distinct residual path because the earlier remediation validated the local export importName path but not the named-import alias. This issue is fixed in version 21.0.4.

Published by source
2026-10-23
First seen by Reality Radar
2026-10-24
Last verified
2026-10-24

What the official notice says

Risk: CVSS 8.8

Is this affecting you?

Add what you own or use and Reality Radar will tell you when official changes match it — with evidence and next steps.

Track it free

Sources

Evidence ledger

Every piece of evidence we store is appended to a public hash chain, so later edits are detectable. Anyone can re-verify it.

EntryKindObservedEvidence hashEntry hash
#1536new2026-10-24376a06f83c91…16443b858f93c8cf26…111ddf

Chain head: #1565 7d9afd922511…68b9c7

Raw ledger entries (JSON) · Verify chain

Share this signal