<?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://vulnerability.circl.lu</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>Wed, 30 Sep 2026 00:47:58 +0000</lastBuildDate>
    <item>
      <title>GHSA-37qj-frw5-hhjh — fast-xml-parser has RangeError DoS Numeric Entities Bug</title>
      <link>https://vulnerability.circl.lu/vuln/ghsa-37qj-frw5-hhjh</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: fast-xml-parser&lt;/p&gt;
&lt;p&gt;### Summary
A RangeError vulnerability exists in the numeric entity processing of fast-xml-parser when parsing XML with out-of-range entity code points (e.g., `&amp;amp;#9999999;` or `&amp;amp;#xFFFFFF;`). This causes the parser to throw an uncaught exception, crashing any application that processes untrusted XML input.&lt;/p&gt;
&lt;p&gt;### Details
The vulnerability exists in `/src/xmlparser/OrderedObjParser.js` at lines 44-45:&lt;/p&gt;
&lt;p&gt;```javascript
&amp;#34;num_dec&amp;#34;: { regex: /&amp;amp;#([0-9]{1,7});/g, val : (_, str) =&amp;gt; String.fromCodePoint(Number.parseInt(str, 10)) },
&amp;#34;num_hex&amp;#34;: { regex: /&amp;amp;#x([0-9a-fA-F]{1,6});/g, val : (_, str) =&amp;gt; String.fromCodePoint(Number.parseInt(str, 16)) },
```&lt;/p&gt;
&lt;p&gt;The `String.fromCodePoint()` method throws a `RangeError` when the code point exceeds the valid Unicode range (0 to 0x10FFFF / 1114111). The regex patterns can capture values far exceeding this:
- `[0-9]{1,7}` matches up to 9,999,999
- `[0-9a-fA-F]{1,6}` matches up to 0xFFFFFF (16,777,215)&lt;/p&gt;
&lt;p&gt;The entity replacement in `replaceEntitiesValue()` (line 452) has no try-catch:&lt;/p&gt;
&lt;p&gt;```javascript
val = val.replace(entity.regex, entity.val);
```&lt;/p&gt;
&lt;p&gt;This causes the RangeError to propagate uncaught, crashing the parser and any application using it.
### PoC
#### Setup&lt;/p&gt;
&lt;p&gt;Create a directory with these files:&lt;/p&gt;
&lt;p&gt;```
poc/
├── package.json
├── server.js
```&lt;/p&gt;
&lt;p&gt;**package.json**
```json
{ &amp;#34;dependencies&amp;#34;: { &amp;#34;fast-xml-parser&amp;#34;: &amp;#34;^5.3.3&amp;#34; } }
```&lt;/p&gt;
&lt;p&gt;**server.js**
```javascript
const http = require(&amp;#39;http&amp;#39;);
const { XMLParser } = require(&amp;#39;fast-xml-parser&amp;#39;);&lt;/p&gt;
&lt;p&gt;const parser = new XMLPar…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: fast-xml-parser&lt;/p&gt;
&lt;p&gt;### Summary
A RangeError vulnerability exists in the numeric entity processing of fast-xml-parser when parsing XML with out-of-range entity code points (e.g., `&amp;amp;#9999999;` or `&amp;amp;#xFFFFFF;`). This causes the parser to throw an uncaught exception, crashing any application that processes untrusted XML input.&lt;/p&gt;
&lt;p&gt;### Details
The vulnerability exists in `/src/xmlparser/OrderedObjParser.js` at lines 44-45:&lt;/p&gt;
&lt;p&gt;```javascript
&amp;#34;num_dec&amp;#34;: { regex: /&amp;amp;#([0-9]{1,7});/g, val : (_, str) =&amp;gt; String.fromCodePoint(Number.parseInt(str, 10)) },
&amp;#34;num_hex&amp;#34;: { regex: /&amp;amp;#x([0-9a-fA-F]{1,6});/g, val : (_, str) =&amp;gt; String.fromCodePoint(Number.parseInt(str, 16)) },
```&lt;/p&gt;
&lt;p&gt;The `String.fromCodePoint()` method throws a `RangeError` when the code point exceeds the valid Unicode range (0 to 0x10FFFF / 1114111). The regex patterns can capture values far exceeding this:
- `[0-9]{1,7}` matches up to 9,999,999
- `[0-9a-fA-F]{1,6}` matches up to 0xFFFFFF (16,777,215)&lt;/p&gt;
&lt;p&gt;The entity replacement in `replaceEntitiesValue()` (line 452) has no try-catch:&lt;/p&gt;
&lt;p&gt;```javascript
val = val.replace(entity.regex, entity.val);
```&lt;/p&gt;
&lt;p&gt;This causes the RangeError to propagate uncaught, crashing the parser and any application using it.
### PoC
#### Setup&lt;/p&gt;
&lt;p&gt;Create a directory with these files:&lt;/p&gt;
&lt;p&gt;```
poc/
├── package.json
├── server.js
```&lt;/p&gt;
&lt;p&gt;**package.json**
```json
{ &amp;#34;dependencies&amp;#34;: { &amp;#34;fast-xml-parser&amp;#34;: &amp;#34;^5.3.3&amp;#34; } }
```&lt;/p&gt;
&lt;p&gt;**server.js**
```javascript
const http = require(&amp;#39;http&amp;#39;);
const { XMLParser } = require(&amp;#39;fast-xml-parser&amp;#39;);&lt;/p&gt;
&lt;p&gt;const parser = new XMLPar…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/ghsa-37qj-frw5-hhjh</guid>
    </item>
  </channel>
</rss>
