Every CVE Search/ Get API key

CVE-2026-26278

fast-xml-parser affected by DoS through entity expansion in DOCTYPE (no expansion limit)

7.5 HighFix available

fast-xml-parser allows users to validate XML, parse XML to JS object, or build XML from JS object without C/C++ based libraries and no callback. In versions 4.1.3 through 5.3.5, the XML parser can be forced to do an unlimited amount of entity expansion. With a very small XML input, it’s possible to make the parser spend seconds or even minutes processing a single request, effectively freezing the application. Version 5.3.6 fixes the issue. As a workaround, avoid using DOCTYPE parsing by processEntities: false option.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
None
Integrity
None
Availability
High

Exploit likelihood

0.94%Up 0.9 points since Feb 20, 2026
90%50%10%1%

What each source reports

CVE List Score used 7.5

fast-xml-parser affected by DoS through entity expansion in DOCTYPE (no expansion limit)

fast-xml-parser allows users to validate XML, parse XML to JS object, or build XML from JS object without C/C++ based libraries and no callback. In versions 4.1.3 through 5.3.5, the XML parser can be forced to do an unlimited amount of entity expansion. With a very small XML input, it’s possible to make the parser spend seconds or even minutes processing a single request, effectively freezing the application. Version 5.3.6 fixes the issue. As a workaround, avoid using DOCTYPE parsing by processEntities: false option.

Record
CVE-2026-26278
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-776, CWE-776
Updated
2026-11-02
EUVDEUVD-2026-7970 7.5

fast-xml-parser allows users to validate XML, parse XML to JS object, or build XML from JS object without C/C++ based libraries and no callback. In versions 4.1.3 through 5.3.5, the XML parser can be forced to do an unlimited amount of entity expansion. With a very small XML input, it’s possible to make the parser spend seconds or even minutes processing a single request, effectively freezing the application. Version 5.3.6 fixes the issue. As a workaround, avoid using DOCTYPE parsing by processEntities: false option.

Record
EUVD-2026-7970
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-02
GitHub AdvisoriesGHSA-jmr7-xgp7-cmfj 7.5

fast-xml-parser affected by DoS through entity expansion in DOCTYPE (no expansion limit)

Summary

The XML parser can be forced to do an unlimited amount of entity expansion. With a very small XML input, it’s possible to make the parser spend seconds or even minutes processing a single request, effectively freezing the application.

Details

There is a check in DocTypeReader.js that tries to prevent entity expansion attacks by rejecting entities that reference other entities (it looks for & inside entity values). This does stop classic “Billion Laughs” payloads.

However, it doesn’t stop a much simpler variant.

If you define one large entity that contains only raw text (no & characters) and then reference it many times, the parser will happily expand it every time. There is no limit on how large the expanded result can become, or how many replacements are allowed.

The problem is in replaceEntitiesValue() inside OrderedObjParser.js. It repeatedly runs val.replace() in a loop, without any checks on total output size or execution cost. As the entity grows or the number of references increases, parsing time explodes.

Relevant code:

DocTypeReader.js (lines 28–33): entity registration only checks for &

OrderedObjParser.js (lines 439–458): entity replacement loop with no limits

PoC

const { XMLParser } = require('fast-xml-parser');

const entity = 'A'.repeat(1000);
const refs = '&big;'.repeat(100);
const xml = `<!DOCTYPE foo [<!ENTITY big "${entity}">]><root>${refs}</root>`;

console.time('parse');
new XMLParser().parse(xml); // ~4–8 seconds for ~1.3 KB of XML
console.timeEnd('parse');

// 5,000 chars × 100 refs takes 200+ seconds
// 50,000 chars × 1,000 refs will hang indefinitely

Impact

This is a straightforward denial-of-service issue.

Any service that parses user-supplied XML using the default configuration is vulnerable. Since Node.js runs on a single thread, the moment the parser starts expanding entities, the event loop is blocked. While this is happening, the server can’t handle any other requests.

In testing, a payload of only a few kilobytes was enough to make a simple HTTP server completely unresponsive for several minutes, with all other requests timing out.

Workaround

Avoid using DOCTYPE parsing by processEntities: false option.

Record
GHSA-jmr7-xgp7-cmfj
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-776
Updated
2026-11-02
NVD 7.5

fast-xml-parser allows users to validate XML, parse XML to JS object, or build XML from JS object without C/C++ based libraries and no callback. In versions 4.1.3 through 5.3.5, the XML parser can be forced to do an unlimited amount of entity expansion. With a very small XML input, it’s possible to make the parser spend seconds or even minutes processing a single request, effectively freezing the application. Version 5.3.6 fixes the issue. As a workaround, avoid using DOCTYPE parsing by processEntities: false option.

Record
CVE-2026-26278
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-776
Updated
2026-11-02
OSV 7.5

fast-xml-parser affected by DoS through entity expansion in DOCTYPE (no expansion limit)

fast-xml-parser allows users to validate XML, parse XML to JS object, or build XML from JS object without C/C++ based libraries and no callback. In versions 4.1.3 through 5.3.5, the XML parser can be forced to do an unlimited amount of entity expansion. With a very small XML input, it’s possible to make the parser spend seconds or even minutes processing a single request, effectively freezing the application. Version 5.3.6 fixes the issue. As a workaround, avoid using DOCTYPE parsing by processEntities: false option.

Record
CVE-2026-26278
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-776
Updated
2026-11-02
OSVDEBIAN-CVE-2026-26278 7.5

fast-xml-parser allows users to validate XML, parse XML to JS object, or build XML from JS object without C/C++ based libraries and no callback. In versions 4.1.3 through 5.3.5, the XML parser can be forced to do an unlimited amount of entity expansion. With a very small XML input, it’s possible to make the parser spend seconds or even minutes processing a single request, effectively freezing the application. Version 5.3.6 fixes the issue. As a workaround, avoid using DOCTYPE parsing by processEntities: false option.

Record
DEBIAN-CVE-2026-26278
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-02
Show 11 moreShow less
OSVGHSA-jmr7-xgp7-cmfj 7.5

fast-xml-parser affected by DoS through entity expansion in DOCTYPE (no expansion limit)

Summary

The XML parser can be forced to do an unlimited amount of entity expansion. With a very small XML input, it’s possible to make the parser spend seconds or even minutes processing a single request, effectively freezing the application.

Details

There is a check in DocTypeReader.js that tries to prevent entity expansion attacks by rejecting entities that reference other entities (it looks for & inside entity values). This does stop classic “Billion Laughs” payloads.

However, it doesn’t stop a much simpler variant.

If you define one large entity that contains only raw text (no & characters) and then reference it many times, the parser will happily expand it every time. There is no limit on how large the expanded result can become, or how many replacements are allowed.

The problem is in replaceEntitiesValue() inside OrderedObjParser.js. It repeatedly runs val.replace() in a loop, without any checks on total output size or execution cost. As the entity grows or the number of references increases, parsing time explodes.

Relevant code:

DocTypeReader.js (lines 28–33): entity registration only checks for &

OrderedObjParser.js (lines 439–458): entity replacement loop with no limits

PoC

const { XMLParser } = require('fast-xml-parser');

const entity = 'A'.repeat(1000);
const refs = '&big;'.repeat(100);
const xml = `<!DOCTYPE foo [<!ENTITY big "${entity}">]><root>${refs}</root>`;

console.time('parse');
new XMLParser().parse(xml); // ~4–8 seconds for ~1.3 KB of XML
console.timeEnd('parse');

// 5,000 chars × 100 refs takes 200+ seconds
// 50,000 chars × 1,000 refs will hang indefinitely

Impact

This is a straightforward denial-of-service issue.

Any service that parses user-supplied XML using the default configuration is vulnerable. Since Node.js runs on a single thread, the moment the parser starts expanding entities, the event loop is blocked. While this is happening, the server can’t handle any other requests.

In testing, a payload of only a few kilobytes was enough to make a simple HTTP server completely unresponsive for several minutes, with all other requests timing out.

Workaround

Avoid using DOCTYPE parsing by processEntities: false option.

Record
GHSA-jmr7-xgp7-cmfj
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-776
Updated
2026-11-02
OSVROOT-APP-NPM-CVE-2026-26278 7.5

CVE-2026-26278 in fast-xml-parser - Patched by Root

Root has patched CVE-2026-26278 in the fast-xml-parser package for Root:npm. Multiple fixed versions available.

Record
ROOT-APP-NPM-CVE-2026-26278
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-02
OSVUBUNTU-CVE-2026-26278 7.5

fast-xml-parser allows users to validate XML, parse XML to JS object, or build XML from JS object without C/C++ based libraries and no callback. In versions 4.1.3 through 5.3.5, the XML parser can be forced to do an unlimited amount of entity expansion. With a very small XML input, it’s possible to make the parser spend seconds or even minutes processing a single request, effectively freezing the application. Version 5.3.6 fixes the issue. As a workaround, avoid using DOCTYPE parsing by processEntities: false option.

Record
UBUNTU-CVE-2026-26278
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-02
OSVCLSA-2026-1776818199 No score

TuxCare security update for fast-xml-parser (2 CVEs)

TuxCare rebuilt fast-xml-parser to address 2 CVEs. Fixed in 4.5.3-tuxcare.2.

Record
CLSA-2026-1776818199
Updated
2026-11-02
OSVCLSA-2026-1781744119 No score

TuxCare security update for fast-xml-parser (6 CVEs)

TuxCare rebuilt fast-xml-parser to address 6 CVEs. Fixed in 4.2.7-tuxcare.1.

Record
CLSA-2026-1781744119
Updated
2026-11-02
OSVCLSA-2026-1781744139 No score

TuxCare security update for fast-xml-parser (6 CVEs)

TuxCare rebuilt fast-xml-parser to address 6 CVEs. Fixed in 4.4.0-tuxcare.1.

Record
CLSA-2026-1781744139
Updated
2026-11-05
OSVCLSA-2026-1790597933 No score

TuxCare security update for fast-xml-parser (2 CVEs)

TuxCare rebuilt fast-xml-parser to address 2 CVEs. Fixed in 4.5.1-tuxcare.4.

Record
CLSA-2026-1790597933
Updated
2026-11-02
OSVCLSA-2026-1792454133 No score

TuxCare security update for fast-xml-parser (7 CVEs)

TuxCare rebuilt fast-xml-parser to address 7 CVEs. Fixed in 5.2.5-tuxcare.1.

Record
CLSA-2026-1792454133
Updated
2026-11-02
OSVCLSA-2026-1792698537 No score

TuxCare security update for fast-xml-parser (3 CVEs)

TuxCare rebuilt fast-xml-parser to address 3 CVEs. Fixed in 4.4.1-tuxcare.2.

Record
CLSA-2026-1792698537
Updated
2026-11-02
OSVopenSUSE-SU-2026:10236-1 No score

heroic-games-launcher-2.20.0-1.1 on GA media

These are all security issues fixed in the heroic-games-launcher-2.20.0-1.1 package on the GA media of openSUSE Tumbleweed.

Record
openSUSE-SU-2026:10236-1
Updated
2026-11-02
OSVopenSUSE-SU-2026:11126-1 No score

velociraptor-0.7.0.4.git185.a5708584-2.1 on GA media

These are all security issues fixed in the velociraptor-0.7.0.4.git185.a5708584-2.1 package on the GA media of openSUSE Tumbleweed.

Record
openSUSE-SU-2026:11126-1
Updated
2026-11-02

Affected products

Show 2 moreShow less

Affected packages

Affected packages
PackageAffectedFixed
fast-xml-parser
npm
4.1.3 up to 4.5.4
4.5.4
fast-xml-parser
npm
5.0.0 up to 5.3.6
5.3.6
fast-xml-parser
TuxCare:npm
From an advisory covering 2 CVEs
4.5.3-tuxcare.0 up to 4.5.3-tuxcare.2, plus listed versions
4.5.34.5.3-tuxcare.1
4.5.3-tuxcare.2
fast-xml-parser
TuxCare:npm
From an advisory covering 6 CVEs
4.2.7-tuxcare.0 up to 4.2.7-tuxcare.1, plus listed versions
4.2.7
4.2.7-tuxcare.1
fast-xml-parser
TuxCare:npm
From an advisory covering 6 CVEs
4.4.0-tuxcare.0 up to 4.4.0-tuxcare.1, plus listed versions
4.4.0
4.4.0-tuxcare.1
fast-xml-parser
TuxCare:npm
From an advisory covering 2 CVEs
4.5.1-tuxcare.0 up to 4.5.1-tuxcare.4, plus listed versions
4.5.14.5.1-tuxcare.14.5.1-tuxcare.24.5.1-tuxcare.3
4.5.1-tuxcare.4
fast-xml-parser
TuxCare:npm
From an advisory covering 7 CVEs
5.2.5-tuxcare.0 up to 5.2.5-tuxcare.1, plus listed versions
5.2.5
5.2.5-tuxcare.1
fast-xml-parser
TuxCare:npm
From an advisory covering 3 CVEs
4.4.1-tuxcare.0 up to 4.4.1-tuxcare.2, plus listed versions
4.4.14.4.1-tuxcare.1
4.4.1-tuxcare.2
node-webfont
Debian:12
All versions, plus listed versions
11.4.0+dfsg2+~cs35.7.26-1011.4.0+dfsg2+~cs35.7.26-1111.4.0+dfsg2+~cs35.7.26-1211.4.0+dfsg2+~cs35.7.26-1311.4.0+dfsg2+~cs35.7.26-14
Show 9 moreShow less
11.4.0+dfsg2+~cs35.7.26-1511.4.0+dfsg2+~cs35.7.26-1611.4.0+dfsg2+~cs35.7.26-1811.4.0+dfsg2+~cs35.7.26-1911.4.0+dfsg2+~cs35.7.26-2011.4.0+dfsg2+~cs35.7.26-2111.4.0+dfsg2+~cs35.7.26-711.4.0+dfsg2+~cs35.7.26-811.4.0+dfsg2+~cs35.7.26-9
None known
node-webfont
Debian:13
All versions, plus listed versions
11.4.0+dfsg2+~cs35.7.26-1311.4.0+dfsg2+~cs35.7.26-1411.4.0+dfsg2+~cs35.7.26-1511.4.0+dfsg2+~cs35.7.26-1611.4.0+dfsg2+~cs35.7.26-1811.4.0+dfsg2+~cs35.7.26-1911.4.0+dfsg2+~cs35.7.26-2011.4.0+dfsg2+~cs35.7.26-21
None known
Show 9 moreShow less
Affected packages
PackageAffectedFixed
node-webfont
Debian:14
All versions, plus listed versions
11.4.0+dfsg2+~cs35.7.26-1311.4.0+dfsg2+~cs35.7.26-1411.4.0+dfsg2+~cs35.7.26-1511.4.0+dfsg2+~cs35.7.26-1611.4.0+dfsg2+~cs35.7.26-1811.4.0+dfsg2+~cs35.7.26-1911.4.0+dfsg2+~cs35.7.26-2011.4.0+dfsg2+~cs35.7.26-21
None known
fast-xml-parser
Root:npm
before 4.4.1-aikido.9
4.4.1-aikido.95.2.5-aikido.45.3.4-aikido.75.3.4-aikido.84.2.5-aikido.24.5.3-aikido.24.5.1-aikido.24.5.1-aikido.34.5.1-aikido.45.3.6-aikido.55.3.6-aikido.64.5.4-aikido.1
@rootio/fast-xml-parser
Root:npm
before 5.3.4-root.io.1
5.3.4-root.io.15.3.4-root.io.25.3.4-root.io.34.4.1-root.io.34.4.1-root.io.45.3.4-root.io.44.4.1-root.io.54.4.1-root.io.64.4.1-root.io.75.3.4-root.io.55.2.5-root.io.24.4.1-root.io.85.2.5-root.io.35.3.4-root.io.64.4.1-root.io.95.2.5-root.io.45.3.4-root.io.75.3.4-root.io.84.2.5-root.io.24.5.3-root.io.24.5.1-root.io.24.5.1-root.io.34.5.1-root.io.45.3.6-root.io.15.3.6-root.io.25.3.6-root.io.35.3.6-root.io.45.3.6-root.io.55.3.6-root.io.64.5.4-root.io.1
node-webfont
Ubuntu:24.04:LTS
All versions, plus listed versions
11.4.0+dfsg2+~cs35.7.26-7ubuntu1
None known
node-webfont
Ubuntu:25.10
All versions, plus listed versions
11.4.0+dfsg2+~cs35.7.26-1011.4.0+dfsg2+~cs35.7.26-13ubuntu2
None known
node-webfont
Ubuntu:26.10
All versions, plus listed versions
11.4.0+dfsg2+~cs35.7.26-1811.4.0+dfsg2+~cs35.7.26-19
None known
node-webfont
Ubuntu:26.04:LTS
All versions, plus listed versions
11.4.0+dfsg2+~cs35.7.26-13ubuntu211.4.0+dfsg2+~cs35.7.26-1411.4.0+dfsg2+~cs35.7.26-1511.4.0+dfsg2+~cs35.7.26-16build111.4.0+dfsg2+~cs35.7.26-18
None known
heroic-games-launcher
openSUSE:Tumbleweed
From an advisory covering 2 CVEs
before 2.20.0-1.1
2.20.0-1.1
velociraptor
openSUSE:Tumbleweed
From an advisory covering 49 CVEs
before 0.7.0.4.git185.a5708584-2.1
0.7.0.4.git185.a5708584-2.1

History

History
RecordedChangedSources
affected
factsOSV
first indexedCVE List, EUVD, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-26278 is a high vulnerability (CVSS 7.5) in Naturalintelligence Fast-xml-parser, published February 17, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.94%, the 61st percentile. Fixed in fast-xml-parser 4.5.4.

References

Show 65 moreShow less
MoveEnter Open