平台
nodejs
组件
happy-dom
修复版本
15.10.1
20.8.8
CVE-2026-33943 描述了 Happy DOM 中的一个代码注入漏洞,该漏洞允许攻击者通过注入 JavaScript 表达式进行远程代码执行 (RCE)。攻击者可以利用此漏洞控制服务器。此漏洞影响 Happy DOM 15.10.0–20.8.7 版本。 幸运的是,该问题已在 20.8.8 版本中得到修复。
CVE-2026-33943 在 happy-dom 中代表了远程代码执行 (RCE) 的重大风险。ECMAScript 模块编译器没有正确地清理 happy-dom 处理的 ES 模块脚本中 export { } 声明中注入的内容。这使得攻击者能够注入任意 JavaScript 表达式,这些表达式将在编译过程中直接执行。引号过滤器未能删除反引号,导致可以使用模板字面量,从而更容易绕过现有的安全措施。成功的利用可能允许攻击者破坏应用程序的安全性,可能获得对敏感数据的未经授权的访问,或控制系统执行。
该漏洞是通过在 happy-dom 处理的 ES 脚本中的 export { } 声明中注入恶意 JavaScript 代码来利用的。攻击者可以控制这些脚本的内容,从而允许执行任意代码。注入内容的适当清理不足以及引号过滤器中无法删除反引号,导致创建模板字面量有效负载,从而避免检测。利用上下文取决于应用程序中 happy-dom 的使用方式,但通常包括处理来自不受信任来源的 ES 脚本。
Applications and services built on Node.js that utilize the happy-dom module for DOM manipulation or testing are at risk. This includes projects using happy-dom for server-side rendering, automated testing, or simulating browser environments. Projects relying on third-party libraries that transitively depend on vulnerable versions of happy-dom are also potentially affected.
• nodejs / server:
npm list happy-dom• nodejs / server:
npm audit happy-dom• nodejs / server: Check package.json for versions prior to 20.8.8. • nodejs / server: Examine application logs for errors related to ES module compilation or JavaScript execution originating from external sources.
disclosure
漏洞利用状态
EPSS
0.08% (24% 百分位)
CISA SSVC
针对 CVE-2026-33943 的主要缓解措施是将 happy-dom 升级到版本 20.8.8 或更高版本。此版本包含一个修复程序,通过正确清理注入到 export { } 声明中的内容来解决漏洞。同时,作为临时措施,请避免处理来自不受信任来源的 ES 脚本。此外,请检查代码以确定 happy-dom 的任何潜在使用方式是否可能存在漏洞,并对在 happy-dom 中处理之前验证和清理用户提供的所有数据,以应用额外的输入控制。应用补丁并采用安全编码实践对于减轻此风险至关重要。
更新到 20.8.8 或更高版本。此版本修复了 ECMAScriptModuleCompiler 中的代码注入漏洞。
漏洞分析和关键警报直接发送到您的邮箱。
happy-dom 是一个 JavaScript 实现,用于实现 DOM 和 Web 对象,允许在 Node.js 中执行端到端测试,而无需实际的浏览器。
如果您的应用程序使用 happy-dom 并处理来自不受信任来源的 ES 脚本,则可能存在远程代码执行漏洞。
作为临时措施,请避免处理来自不受信任来源的 ES 脚本,并检查您的代码是否存在潜在的漏洞入口点。
目前没有专门用于检测此漏洞的工具。手动代码审查和打补丁是最佳选择。
您可以在漏洞数据库(如 NVD (National Vulnerability Database))和 happy-dom 的变更日志中找到有关此漏洞的更多信息。
CVSS 向量