CVE-2026-47080 json
CDATA Section Breakout via Unsanitised ]]> in xml_builder
published 2026-08-21 2 mo ago modified 2026-10-16 23 d ago also EEF-CVE-2026-47080 , EUVD-2026-63878 , GHSA-67r9-hmxw-h595
- cvss
- 2.1
- version 4.0, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.2%
- EPSS 0.2% chance of exploitation in 30 days, percentile 12%
- public exploits
- 0
- none known
Summary
XML Injection vulnerability in joshnuss xml_builder (XmlBuilder module) allows Content Spoofing, XML Injection.
This vulnerability is associated with program files lib/xml_builder.ex and program routines XmlBuilder.generate/1, XmlBuilder.generate/2, XmlBuilder.escape/1.
The escape/1 clause for {:cdata, data} in lib/xml_builder.ex concatenates data verbatim between the CDATA opener <![CDATA[ and closer ]]> without rewriting or splitting on the embedded ]]> sequence. Because CDATA sections have no internal escape mechanism, the only safe way to embed arbitrary bytes is to split on ]]> and emit adjacent CDATA sections. An attacker who can supply input containing ]]> closes the CDATA section early; any bytes that follow are parsed as ordinary XML markup by downstream consumers, allowing injection of arbitrary elements, text, or entity references into the output document.
This issue affects xml_builder: from 0.0.7 before 2.4.1.
Patch / fix
CISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- no
- Technical impact
- partial
- Assessed
- 2 mo ago
Exploit prediction
0.22% chance of exploitation in the next 30 days, higher than 12% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- vincent.vulcoord.net https://vincent.vulcoord.net/score/?state=Not+Scored&year=2026&year=2025&assigned_to=88bc49d9-8ddd-4227-affc-a613e67abc4d&ordering=-published&cve=CVE-2026-47080 referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 4.0 | 2.1 | CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:N/SC:N/SI:L/SA:N |
| CNA | 4.0 | 2.1 | CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:N/SC:N/SI:L/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| hex | xml_builder | >=0.0.7, <2.4.1 |
2.4.1 |
Affected products
- joshnuss xml_builder
Classification
- Weakness
-
- CWE-91 XML Injection
References
-
github.com
/joshnuss/xml_builder/commit/bfb1ada071ccc1e384c30f782197ca5154106706
patch
-
vincent.vulcoord.net
/score/?state=Not+Scored&year=2026&year=2025&assigned_to=88bc49d9-8ddd-4227-affc-a613e67abc4d&ordering=-publis
exploit
-
github.com
/joshnuss/xml_builder/security/advisories/GHSA-67r9-hmxw-h595
vendor-advisory, related, advisory
-
cna.erlef.org
/cves/CVE-2026-47080.html
related, web
-
osv.dev
/vulnerability/EEF-CVE-2026-47080
related
-
hex.pm
/packages/xml_builder
package
Sources
- CVE List CVE-2026-47080
- NVD CVE-2026-47080
- OSV EEF-CVE-2026-47080
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.