<?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://db.gcve.eu</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>Sun, 01 Nov 2026 15:58:27 +0000</lastBuildDate>
    <item>
      <title>fkie_cve-2026-115897</title>
      <link>https://db.gcve.eu/vuln/fkie_cve-2026-115897</link>
      <description>&lt;p&gt;Serialize JavaScript serializes JavaScript values to a superset of JSON that includes regular expressions and functions. Prior to 7.1.3, the function-source escaping logic does not neutralize a bare closing-script prefix when attacker-influenced function source text ends exactly at that prefix. Because each function body is escaped independently, a delimiter supplied by surrounding serialized output can terminate an HTML script element, and a later serialized value supplies injected markup that becomes a live element in the page. Exploitation requires control of a serialized function&amp;#39;s source text, such as through a spoofed toString(). This issue is fixed in version 7.1.3.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;Serialize JavaScript serializes JavaScript values to a superset of JSON that includes regular expressions and functions. Prior to 7.1.3, the function-source escaping logic does not neutralize a bare closing-script prefix when attacker-influenced function source text ends exactly at that prefix. Because each function body is escaped independently, a delimiter supplied by surrounding serialized output can terminate an HTML script element, and a later serialized value supplies injected markup that becomes a live element in the page. Exploitation requires control of a serialized function&amp;#39;s source text, such as through a spoofed toString(). This issue is fixed in version 7.1.3.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/fkie_cve-2026-115897</guid>
    </item>
    <item>
      <title>GHSA-m5mm-p8h7-m29v — Serialize JavaScript: Cross-site scripting (XSS) via unescaped &lt;/script at the end of a serialized function body</title>
      <link>https://db.gcve.eu/vuln/ghsa-m5mm-p8h7-m29v</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: serialize-javascript&lt;/p&gt;
&lt;p&gt;### Impact&lt;/p&gt;
&lt;p&gt;`serialize-javascript` escapes its output so it is safe to embed inside a
`&amp;lt;script&amp;gt;` element. Before 7.1.3 that guarantee did not hold for a **function
value whose source ends in a bare `&amp;lt;/script`**.&lt;/p&gt;
&lt;p&gt;Each function body is escaped on its own, and a bare `&amp;lt;/script` was only
neutralized when followed — within the same body — by a character the HTML
tokenizer treats as ending the tag name (TAB, LF, FF, CR, SPACE, `/` or `&amp;gt;`).
A body ending exactly at `&amp;lt;/script` has no following character, so it was
emitted unescaped. The delimiter is then supplied by the surrounding output
(for example the newline the `space` option emits after the value), and a
later serialized value can supply the closing `&amp;gt;` followed by markup:&lt;/p&gt;
&lt;p&gt;```js
const serialize = require(&amp;#39;serialize-javascript&amp;#39;);
function f() {} f.toString = () =&amp;gt; &amp;#39;function f(){ return 1 }//&amp;lt;/script&amp;#39;;
function g() {} g.toString = () =&amp;gt; &amp;#39;function g(x){ return x } &amp;gt; &amp;lt;img src=x onerror=alert(1)&amp;gt;&amp;#39;;
serialize({ a: { f }, g }, { space: 2 });
// {
//   &amp;#34;a&amp;#34;: {
//     &amp;#34;f&amp;#34;: function f(){ return 1 }//&amp;lt;/script
//   },
//   &amp;#34;g&amp;#34;: function g(x){ return x } &amp;gt; &amp;lt;img src=x onerror=alert(1)&amp;gt;
// }
```&lt;/p&gt;
&lt;p&gt;Embedded in a `&amp;lt;script&amp;gt;` element, the script ends at the injected tag and the
`&amp;lt;img&amp;gt;` becomes a live element in the page.&lt;/p&gt;
&lt;p&gt;Exploitation requires an attacker to control the **source text** of a
serialized function, in practice through a spoofed `toString()`. Real
functions always end in `}`, so ordinary function values are not affected,
and non-fun…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: serialize-javascript&lt;/p&gt;
&lt;p&gt;### Impact&lt;/p&gt;
&lt;p&gt;`serialize-javascript` escapes its output so it is safe to embed inside a
`&amp;lt;script&amp;gt;` element. Before 7.1.3 that guarantee did not hold for a **function
value whose source ends in a bare `&amp;lt;/script`**.&lt;/p&gt;
&lt;p&gt;Each function body is escaped on its own, and a bare `&amp;lt;/script` was only
neutralized when followed — within the same body — by a character the HTML
tokenizer treats as ending the tag name (TAB, LF, FF, CR, SPACE, `/` or `&amp;gt;`).
A body ending exactly at `&amp;lt;/script` has no following character, so it was
emitted unescaped. The delimiter is then supplied by the surrounding output
(for example the newline the `space` option emits after the value), and a
later serialized value can supply the closing `&amp;gt;` followed by markup:&lt;/p&gt;
&lt;p&gt;```js
const serialize = require(&amp;#39;serialize-javascript&amp;#39;);
function f() {} f.toString = () =&amp;gt; &amp;#39;function f(){ return 1 }//&amp;lt;/script&amp;#39;;
function g() {} g.toString = () =&amp;gt; &amp;#39;function g(x){ return x } &amp;gt; &amp;lt;img src=x onerror=alert(1)&amp;gt;&amp;#39;;
serialize({ a: { f }, g }, { space: 2 });
// {
//   &amp;#34;a&amp;#34;: {
//     &amp;#34;f&amp;#34;: function f(){ return 1 }//&amp;lt;/script
//   },
//   &amp;#34;g&amp;#34;: function g(x){ return x } &amp;gt; &amp;lt;img src=x onerror=alert(1)&amp;gt;
// }
```&lt;/p&gt;
&lt;p&gt;Embedded in a `&amp;lt;script&amp;gt;` element, the script ends at the injected tag and the
`&amp;lt;img&amp;gt;` becomes a live element in the page.&lt;/p&gt;
&lt;p&gt;Exploitation requires an attacker to control the **source text** of a
serialized function, in practice through a spoofed `toString()`. Real
functions always end in `}`, so ordinary function values are not affected,
and non-fun…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/ghsa-m5mm-p8h7-m29v</guid>
    </item>
    <item>
      <title>msrc_CVE-2026-115897 — Serialize JavaScript: Cross-site scripting (XSS) via unescaped &lt;/script at the end of a serialized function body</title>
      <link>https://db.gcve.eu/vuln/msrc_cve-2026-115897</link>
      <description>msrc_CVE-2026-115897</description>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/msrc_cve-2026-115897</guid>
    </item>
  </channel>
</rss>
