Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2026-115895— Happy DOM: Incomplete fix for CVE-2026-33943: unsanitized import alias leads to host code execution

Quick assessment

Affected
capricorn86 happy-dom
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

Happy DOM 是一个不带图形用户界面的 Web 浏览器 JavaScript 实现。在 17.0.0 至 21.0.4 版本中, 模块在将命名 ESM 导入别名插入生成的解构绑定之前,未验证该别名是否为合法的 JavaScript 绑定标识符。当启用了 选项时,攻击者可控制的 HTML 或模块源代码可利用无效的别名,使其在编译后变为有效的默认初始化器,从而导致生成的 JavaScript 代码在 Node.js 宿主进程中执行。已验证的利用路径使用了 JSON 模块的导入属性,该属性可防止恶意别名在后续的 E

CVSS 8.8 · High
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2026-115895

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
Happy DOM: Incomplete fix for CVE-2026-33943: unsanitized import alias leads to host code execution
Source: CVE Program / CVE List V5
Vulnerability Description
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.
Source: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Source: CVE Program / CVE List V5
Vulnerability Type
对生成代码的控制不恰当(代码注入)
Source: CVE Program / CVE List V5

Affected Products

Vendor Product Affected Versions CPE Subscribe
capricorn86 happy-dom >= 17.0.0, < 21.0.4 -

II. Public POCs for CVE-2026-115895

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2026-115895

请登录查看更多情报信息。

Patches & Fixes for CVE-2026-115895 (2)

Vendor Pages for CVE-2026-115895 (1)

IV. Related Vulnerabilities

V. Comments for CVE-2026-115895

No comments yet


Leave a comment