<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://cve.radiocsirt.org</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Thu, 15 Oct 2026 07:25:38 +0000</lastBuildDate>
    <item>
      <title>EUVD-2026-337327</title>
      <link>https://cve.radiocsirt.org/vuln/euvd-2026-337327</link>
      <description>EUVD-2026-337327</description>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/euvd-2026-337327</guid>
    </item>
    <item>
      <title>fkie_cve-2026-33943</title>
      <link>https://cve.radiocsirt.org/vuln/fkie_cve-2026-33943</link>
      <description>&lt;p&gt;Happy DOM is a JavaScript implementation of a web browser without its graphical user interface. In versions 15.10.0 through 20.8.7, a code injection vulnerability in `ECMAScriptModuleCompiler` allows an attacker to achieve Remote Code Execution (RCE) by injecting arbitrary JavaScript expressions inside `export { }` declarations in ES module scripts processed by happy-dom. The compiler directly interpolates unsanitized content into generated code as an executable expression, and the quote filter does not strip backticks, allowing template literal-based payloads to bypass sanitization. Version 20.8.8 fixes the issue.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;Happy DOM is a JavaScript implementation of a web browser without its graphical user interface. In versions 15.10.0 through 20.8.7, a code injection vulnerability in `ECMAScriptModuleCompiler` allows an attacker to achieve Remote Code Execution (RCE) by injecting arbitrary JavaScript expressions inside `export { }` declarations in ES module scripts processed by happy-dom. The compiler directly interpolates unsanitized content into generated code as an executable expression, and the quote filter does not strip backticks, allowing template literal-based payloads to bypass sanitization. Version 20.8.8 fixes the issue.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/fkie_cve-2026-33943</guid>
    </item>
    <item>
      <title>GHSA-6q6h-j7hj-3r64 — Happy DOM ECMAScriptModuleCompiler: unsanitized export names are interpolated as executable code</title>
      <link>https://cve.radiocsirt.org/vuln/ghsa-6q6h-j7hj-3r64</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: happy-dom&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;A code injection vulnerability in `ECMAScriptModuleCompiler` allows an attacker to achieve Remote Code Execution (RCE) by injecting arbitrary JavaScript expressions inside `export { }` declarations in ES module scripts processed by happy-dom. The compiler directly interpolates unsanitized content into generated code as an executable expression, and the quote filter does not strip backticks, allowing template literal-based payloads to bypass sanitization.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;**Vulnerable file**: `packages/happy-dom/src/module/ECMAScriptModuleCompiler.ts`, lines 371-385&lt;/p&gt;
&lt;p&gt;The &amp;#34;Export object&amp;#34; handler extracts content from `export { ... }` using the regex `export\s*{([^}]+)}`, then generates executable code by directly interpolating it:&lt;/p&gt;
&lt;p&gt;} else if (match[16] &amp;amp;&amp;amp; isTopLevel &amp;amp;&amp;amp; PRECEDING_STATEMENT_TOKEN_REGEXP.test(precedingToken)) {
        // Export object
        const parts = this.removeMultilineComments(match[16]).split(/\s*,\s*/);
        const exportCode: string[] = [];
        for (const part of parts) {
            const nameParts = part.trim().split(/\s+as\s+/);
            const exportName = (nameParts[1] || nameParts[0]).replace(/[&amp;#34;&amp;#39;]/g, &amp;#39;&amp;#39;);
            const importName = nameParts[0].replace(/[&amp;#34;&amp;#39;]/g, &amp;#39;&amp;#39;);  // backticks NOT stripped
            if (exportName &amp;amp;&amp;amp; importName) {
                exportCode.push(`$happy_dom.exports[&amp;#39;${exportName}&amp;#39;] = ${importName}`);
                //               importName is inserted as executable code, not as a string…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: happy-dom&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;A code injection vulnerability in `ECMAScriptModuleCompiler` allows an attacker to achieve Remote Code Execution (RCE) by injecting arbitrary JavaScript expressions inside `export { }` declarations in ES module scripts processed by happy-dom. The compiler directly interpolates unsanitized content into generated code as an executable expression, and the quote filter does not strip backticks, allowing template literal-based payloads to bypass sanitization.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;**Vulnerable file**: `packages/happy-dom/src/module/ECMAScriptModuleCompiler.ts`, lines 371-385&lt;/p&gt;
&lt;p&gt;The &amp;#34;Export object&amp;#34; handler extracts content from `export { ... }` using the regex `export\s*{([^}]+)}`, then generates executable code by directly interpolating it:&lt;/p&gt;
&lt;p&gt;} else if (match[16] &amp;amp;&amp;amp; isTopLevel &amp;amp;&amp;amp; PRECEDING_STATEMENT_TOKEN_REGEXP.test(precedingToken)) {
        // Export object
        const parts = this.removeMultilineComments(match[16]).split(/\s*,\s*/);
        const exportCode: string[] = [];
        for (const part of parts) {
            const nameParts = part.trim().split(/\s+as\s+/);
            const exportName = (nameParts[1] || nameParts[0]).replace(/[&amp;#34;&amp;#39;]/g, &amp;#39;&amp;#39;);
            const importName = nameParts[0].replace(/[&amp;#34;&amp;#39;]/g, &amp;#39;&amp;#39;);  // backticks NOT stripped
            if (exportName &amp;amp;&amp;amp; importName) {
                exportCode.push(`$happy_dom.exports[&amp;#39;${exportName}&amp;#39;] = ${importName}`);
                //               importName is inserted as executable code, not as a string…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/ghsa-6q6h-j7hj-3r64</guid>
    </item>
  </channel>
</rss>
