<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://vulnerability.circl.lu/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-09-30T00:47:57.696888+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>info@circl.lu</email>
  </author>
  <link href="https://vulnerability.circl.lu" rel="alternate"/>
  <generator uri="https://lkiesow.github.io/python-feedgen" version="1.0.0">python-feedgen</generator>
  <subtitle>Contains only the most 10 recent entries.</subtitle>
  <entry>
    <id>https://vulnerability.circl.lu/vuln/ghsa-37qj-frw5-hhjh</id>
    <title>GHSA-37qj-frw5-hhjh — fast-xml-parser has RangeError DoS Numeric Entities Bug</title>
    <updated>2026-09-30T00:47:57.699302+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> npm: fast-xml-parser</p>
<p>### 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;#9999999;` or `&amp;#xFFFFFF;`). This causes the parser to throw an uncaught exception, crashing any application that processes untrusted XML input.</p>
<p>### Details
The vulnerability exists in `/src/xmlparser/OrderedObjParser.js` at lines 44-45:</p>
<p>```javascript
"num_dec": { regex: /&amp;#([0-9]{1,7});/g, val : (_, str) =&gt; String.fromCodePoint(Number.parseInt(str, 10)) },
"num_hex": { regex: /&amp;#x([0-9a-fA-F]{1,6});/g, val : (_, str) =&gt; String.fromCodePoint(Number.parseInt(str, 16)) },
```</p>
<p>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)</p>
<p>The entity replacement in `replaceEntitiesValue()` (line 452) has no try-catch:</p>
<p>```javascript
val = val.replace(entity.regex, entity.val);
```</p>
<p>This causes the RangeError to propagate uncaught, crashing the parser and any application using it.
### PoC
#### Setup</p>
<p>Create a directory with these files:</p>
<p>```
poc/
├── package.json
├── server.js
```</p>
<p>**package.json**
```json
{ "dependencies": { "fast-xml-parser": "^5.3.3" } }
```</p>
<p>**server.js**
```javascript
const http = require('http');
const { XMLParser } = require('fast-xml-parser');</p>
<p>const parser = new XMLPar…</p></div>
    </content>
    <link href="https://vulnerability.circl.lu/vuln/ghsa-37qj-frw5-hhjh"/>
  </entry>
</feed>
