CVE-2026-26278
High · 7.5CVSS
7.5
EPSS
1.1%
Published
Feb 19, 2026
CISA due date
—
Cloudanix analysis
A small malicious XML file can make affected applications freeze or become unavailable until the XML parser is updated or entity processing is disabled.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Library
- Class
- XXE
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
fast-xml-parser versions 4.1.3 through 5.3.5 can be driven into unbounded XML entity expansion when parsing XML that includes a DOCTYPE with nested or recursive entity definitions. A small attacker-controlled XML document can expand into a very large in-memory representation or force repeated entity substitution, consuming CPU time and potentially memory until the Node.js process becomes unresponsive. The practical impact is denial of service: no authentication or user interaction is required if an application exposes XML parsing to the network, and the CVSS vector indicates high availability impact with no direct confidentiality or integrity impact. Version 5.3.6 and commit ecb2ca118ad3d6c62f2cc90416b58da24db5d18b address the issue in naturalintelligence/fast-xml-parser; internationalcolorconsortium/iccdev is listed as affected with a fix in commit 2eb25ab95f0db7664ec3850390b6f89e302e7039.
Why it matters to the business
Applications, APIs, ingestion pipelines, webhooks, file upload processors, and background workers that accept XML from untrusted sources can be slowed or frozen by a very small malicious request or file. This can cause service outages, request backlog, failed transactions, autoscaling cost spikes, degraded customer experience, and operational incident response even though the flaw does not directly expose data. The issue is not currently listed in CISA KEV, is not known to be used in ransomware campaigns, and has low EPSS at 0.00843 with no reported mature public exploit, but it is still important for internet-facing XML processing paths because exploitation is simple once an attacker can submit XML.
How an attack unfolds
An attacker first identifies an endpoint, queue, upload feature, integration, or service that parses XML using an affected fast-xml-parser version or a downstream component that embeds it. The attacker submits a crafted XML document containing a DOCTYPE section with many nested entity declarations, commonly similar to a "Billion Laughs" payload. When the application parses the XML with entity processing enabled, the parser repeatedly expands the defined entities without an effective expansion limit. A small request can therefore cause seconds or minutes of CPU-bound processing, high event-loop latency, memory pressure, request timeouts, and worker saturation. Repeated submissions can keep the application or parsing workers unavailable, resulting in a denial-of-service condition. No evidence in the provided data indicates active exploitation by named threat actors, KEV inclusion, ransomware usage, or reliable remote code execution from this flaw.
How to fix it
Upgrade naturalintelligence/fast-xml-parser to version 5.3.6 or later. For source-based deployments, ensure the fix from commit ecb2ca118ad3d6c62f2cc90416b58da24db5d18b is present. For internationalcolorconsortium/iccdev, update to a revision containing commit 2eb25ab95f0db7664ec3850390b6f89e302e7039. If immediate upgrade is not possible, disable XML entity processing by configuring fast-xml-parser with `processEntities: false`, and reject XML containing `<!DOCTYPE` or `<!ENTITY` at trust boundaries where those features are not explicitly required. Add request body size limits, parser timeouts, worker isolation, rate limiting, queue backpressure, and circuit breakers around XML ingestion paths. Ensure software composition analysis covers transitive dependencies and downstream packages that bundle or pin vulnerable fast-xml-parser versions.
How to confirm the fix worked
Confirm dependency versions with package lockfiles, SBOMs, container image scans, and runtime dependency inspection; affected fast-xml-parser versions are 4.1.3 through 5.3.5, and fixed version is 5.3.6 or later. Verify that the deployed artifact actually contains the patched dependency, not only the source repository. Review XML parser configuration and confirm `processEntities: false` is set where entity expansion is not required. Test exposed XML ingestion paths with a safe, bounded entity-expansion test payload in a non-production environment and confirm the request is rejected quickly or completes within expected limits without CPU spikes. Validate that WAF/API gateway rules, upload validators, or application middleware reject unexpected `DOCTYPE` and `ENTITY` declarations. Monitor after deployment for normal request latency, reduced parser CPU time, and absence of recurring XML parse timeouts.
Typical attack path
- Find an application feature that accepts XML over HTTP, message queues, file uploads, API integrations, or batch import jobs.
- Confirm that malformed or complex XML is processed server-side rather than rejected at the edge.
- Send XML containing a DOCTYPE declaration with nested or recursively referenced entity definitions.
- Trigger parsing with entity processing enabled in fast-xml-parser versions 4.1.3 through 5.3.5 or an affected downstream product.
- Force excessive entity expansion, causing high CPU usage, event-loop blocking, memory pressure, long response times, or process unresponsiveness.
- Repeat requests or uploads to sustain application-level denial of service and exhaust worker capacity.
How to detect it
To determine whether exploitation has already occurred, review application access logs, API gateway logs, WAF logs, upload metadata, message queue payload samples, and XML ingestion service logs for requests or files containing `<!DOCTYPE` and `<!ENTITY` declarations, especially nested entity chains. Correlate these events with abnormal CPU saturation, Node.js event-loop lag, memory pressure, garbage collection spikes, request timeouts, HTTP 408/429/500/502/503/504 responses, worker restarts, container OOM kills, autoscaling events, queue backlog growth, or health-check failures. Inspect retained request bodies or quarantined uploaded files for repeated entity names such as `lol`, deeply nested entity references, or unusually small XML inputs that produce very long processing times. Because exploitation is a denial-of-service technique rather than a persistence mechanism, durable host artifacts may be limited; focus on traffic/content evidence and operational telemetry around the time of service degradation. No named threat actor or ransomware campaign is indicated in the provided data.
- <!DOCTYPE
- <!ENTITY
- <!ENTITY lol
- &lol;
- &lol1;
- &lol2;
- &lol3;
- &lol4;
- &lol5;
- &lol6;
- &lol7;
- &lol8;
- &lol9;
- Billion Laughs
- processEntities: true
- processEntities=true
- XML parse timeout
- entity expansion
- Entity expansion
- JavaScript heap out of memory
- FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed
- 503 Service Unavailable
- 504 Gateway Timeout
What your security team should do
- Prioritize remediation for internet-facing APIs, webhook receivers, file upload services, and integration workers that parse untrusted XML.
- Upgrade fast-xml-parser to 5.3.6 or later, or deploy builds containing commit ecb2ca118ad3d6c62f2cc90416b58da24db5d18b; update affected downstream components such as iccdev to a fixed revision.
- Disable entity processing with `processEntities: false` unless the business function explicitly requires XML entity expansion.
- Add preventive controls to reject XML containing `<!DOCTYPE` or `<!ENTITY` from untrusted sources where those constructs are unnecessary.
- Search SBOMs, lockfiles, container images, and vendor packages for transitive use of fast-xml-parser versions 4.1.3 through 5.3.5.
- Implement parser execution time limits, request size limits, queue backpressure, rate limiting, and worker isolation to reduce denial-of-service blast radius.
- Review historical logs for requests or files containing DOCTYPE and ENTITY declarations correlated with high CPU, timeouts, 5xx responses, process restarts, or queue backlog.
- Track dependency advisory updates even though this issue is not currently KEV-listed and has low EPSS, because entity-expansion denial-of-service payloads are easy to adapt.
The record
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.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| npm | fast-xml-parser | 4.1.3 | 4.5.4 |
| npm | fast-xml-parser | 5.0.0 | 5.3.6 |
| Chainguard | dbgate | 0 | 7.0.6-r1 |
| Chainguard | dbgate-fips | 0 | 7.1.0-r0 |
| Chainguard | jitsucom-jitsu-console | 0 | 2.11.0-r15 |
| Chainguard | kibana-8.17 | 0 | 8.17.10-r10 |
| Chainguard | kibana-8.17-iamguarded | 0 | 8.17.10-r10 |
| Chainguard | kibana-8.19 | 0 | 8.19.11-r1 |
| Chainguard | kibana-8.19-bitnami | 0 | 8.19.11-r1 |
| Chainguard | kibana-8.19-iamguarded | 0 | 8.19.11-r1 |
| Chainguard | kibana-9.0 | 0 | 9.0.8-r10 |
| Chainguard | kibana-9.0-bitnami | 0 | 9.0.8-r10 |
| Chainguard | kibana-9.0-iamguarded | 0 | 9.0.8-r10 |
| Chainguard | kibana-9.1 | 0 | 9.1.10-r5 |
| Chainguard | kibana-9.1-iamguarded | 0 | 9.1.10-r5 |
| Chainguard | kibana-9.2 | 0 | 9.2.5-r3 |
| Chainguard | kibana-9.2-iamguarded | 0 | 9.2.5-r3 |
| Chainguard | kibana-9.3 | 0 | 9.3.0-r1 |
| Chainguard | kibana-9.3-iamguarded | 0 | 9.3.0-r1 |
| Chainguard | kubeflow-pipelines-frontend | 0 | 2.15.0-r12 |
| Chainguard | langfuse-2-worker | 0 | 2.95.12-r11 |
| Chainguard | langfuse-fips-2-worker | 0 | 2.95.12-r13 |
| Chainguard | librechat | 0 | 0.8.2-r3 |
| Chainguard | prism | 0 | 5.14.3-r7 |
| Chainguard | renovate | 0 | 43.48.3-r0 |
| Chainguard | tileserver-gl | 0 | 5.5.0-r5 |
| Chainguard | tileserver-gl-fips | 0 | 5.5.0-r6 |
| Wolfi | jitsucom-jitsu-console | 0 | 2.11.0-r15 |
| Wolfi | kubeflow-pipelines-frontend | 0 | 2.15.0-r12 |
| Wolfi | prism | 0 | 5.14.3-r7 |
| Wolfi | renovate | 0 | 43.48.3-r0 |
| Wolfi | tileserver-gl | 0 | 5.5.0-r5 |
| openSUSE:Tumbleweed | heroic-games-launcher | 0 | 2.20.0-1.1 |
| openSUSE:Tumbleweed | velociraptor | 0 | 0.7.0.4.git185.a5708584-2.1 |
Related vulnerabilities
- GHSA-jmr7-xgp7-cmfj fast-xml-parser affected by DoS through entity expansion in DOCTYPE (no expansion limit) Same vulnerability
- CVE-2026-41650 fast-xml-parser allows users to process XML from JS object without C/C++ based libraries… Also affects fast-xml-parser
- GHSA-gh4j-gqv2-49f6 fast-xml-parser XMLBuilder: XML Comment and CDATA Injection via Unescaped Delimiters Also affects fast-xml-parser
- CVE-2026-33349 fast-xml-parser allows users to process XML from JS object without C/C++ based libraries… Also affects fast-xml-parser
- CVE-2026-33036 fast-xml-parser allows users to process XML from JS object without C/C++ based libraries… Also affects fast-xml-parser
- GHSA-jp2q-39xq-3w4g Entity Expansion Limits Bypassed When Set to Zero Due to JavaScript Falsy Evaluation in… Also affects fast-xml-parser
- GHSA-8gc5-j5rx-235r fast-xml-parser affected by numeric entity expansion bypassing all entity expansion… Also affects fast-xml-parser
- GHSA-fj3w-jwp8-x2g3 fast-xml-parser has stack overflow in XMLBuilder with preserveOrder Also affects fast-xml-parser