CVE-2026-66294
What it is
XML injection in the Saxy XML encoder. Saxy.Encoder.cdata/1 serializes a {:cdata, characters} node by wrapping the supplied characters between <![CDATA[ and ]]> and passing the payload through byte for byte. The encoder's character-data and attribute-value paths escape the XML metacharacters <, >, &, ", and ', but the CDATA path applies no neutralization at all. XML provides no character escaping mechanism inside a CDATA section, so the only correct way to represent a ]]> substring is to split the section and rejoin it as ]]]]><![CDATA[>. Saxy neither performs that split nor rejects the substring. An application that renders untrusted text as CDATA, by building the node with Saxy.XML.cdata/1 and serializing it with Saxy.encode!/2 or Saxy.encode_to_iodata!/2, therefore lets an attacker terminate the section at a position of their choosing. Everything supplied after the ]]> is emitted outside any CDATA context and is parsed as markup, so a single attacker-controlled text field becomes attacker-controlled document structure: arbitrary sibling elements and attributes that the application never built. Downstream consumers of the serialized document accept the injected markup as genuine. Services that generate SOAP envelopes, RSS or Atom feeds, sitemaps, SVG, or XML exports from user-supplied content can have trusted fields forged or overridden. Applications that never place untrusted text in a CDATA node are not affected. This issue affects saxy: from 0.7.0 before 1.7.0.
At a glance
- Exploitability
- Can be exploited locally on the machine without logging in. Limited direct impact.
- Exploit odds
- 0.2% chance of exploitation in the next 30 days (EPSS).
- Fix
- A patch, advisory or fixed version is referenced. Upgrade or apply it.
Timeline
- PublishedDisclosed publicly on CVE.org and NVD
- Last updatedMost recent change to the record
Why it ranks here
- Exploited in the wild: no, CISA does not list it.
- Exploit odds: 0.2% in the next 30 days (EPSS).
- Severity: 2.1 LOW (CVSS).
- Fix: a patch or advisory is linked.
Details
- Published
- Last modified
- Exploit probability
- 0.2% · EPSS, next 30 days
- Weakness
- CWE-91
- Record status
- Received
Attack profile CVSS 4.0 · 2.1
- Attack vector
- Local
- Complexity
- Low
- Attack requirements
- Present
- Privileges needed
- None
- User interaction
- None
- Confidentiality
- None
- Integrity
- Low
- Availability
- None
Raw vector
CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/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
Is it in your code?
Hand this to your coding agent. It searches your project for the affected products and checks versions. Nothing leaves your machine.
Read https://cve-list.com/agent/cve/CVE-2026-66294.md and follow it. Check whether this project is affected by CVE-2026-66294. Read only. Don't change anything and don't upload my code. Tell me yes, no or not sure, with the file as proof.
Fix and advisories
- https://github.com/qcam/saxy/commit/71d99fae12f1d6596f5edb57b71f26ba854f4d33
- https://github.com/qcam/saxy/commit/7266632e9407842f28ffac254c56dc41210a5690
- https://github.com/qcam/saxy/security/advisories/GHSA-hq6g-j46w-wx72
References
- https://cna.erlef.org/cves/CVE-2026-66294.html
- https://github.com/qcam/saxy/commit/71d99fae12f1d6596f5edb57b71f26ba854f4d33
- https://github.com/qcam/saxy/commit/7266632e9407842f28ffac254c56dc41210a5690
- https://github.com/qcam/saxy/security/advisories/GHSA-hq6g-j46w-wx72
- https://osv.dev/vulnerability/EEF-CVE-2026-66294