CVE-2026-66293 json
XML comment injection in Saxy encoder via unescaped double hyphen
published 5d ago modified yesterday also EEF-CVE-2026-66293 , EUVD-2026-118185 , GHSA-mm3m-xwmf-v698
- 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 6%
- public exploits
- 0
- none known
Summary
XML injection in the encoder of Saxy. Saxy.Encoder does not neutralize the -- sequence in XML comment content: escape_comment/2 returns the comment binary unchanged in every clause and only appends a space when the comment ends in a single -, so neither an interior -- nor a full --> is escaped or rejected before the encoder wraps the content in the <!-- and --> delimiters.
When an application serializes attacker-controlled text as a comment, through Saxy.XML.comment/1 or a raw {:comment, text} simple form child, the attacker can close the comment early with --> and inject arbitrary sibling markup into the serialized document. A downstream parser then sees elements, attributes, and text that the application never built. Where the document is rendered as HTML or SVG, the injected markup executes as stored cross-site scripting; where it is consumed by another XML processor, the attacker can forge data that the producing application never emitted. Documents that Saxy only parses are not a vector.
This issue affects saxy: from 0.7.0 before 1.7.0.
Patch / fix
- hex saxy 1.7.0
- qcam saxy 1.7.0
- github.com/qcam/saxy@7266632 commit
- github.com/qcam/saxy@6d12ee1 commit
Is CVE-2026-66293 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerCISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- partial
- Assessed
- yesterday
Exploit prediction
0.17% chance of exploitation in the next 30 days, higher than 6% of all scored CVEs (FIRST EPSS, 2026-11-11).
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:L/VA:N/SC:L/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:L/VA:N/SC:L/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 | saxy | >=0.7.0, <1.7.0 |
1.7.0 |
Affected products
- qcam saxy
Classification
- Weakness
-
- CWE-91 XML Injection
References
-
github.com
/qcam/saxy/commit/7266632e9407842f28ffac254c56dc41210a5690
related, web
-
github.com
/qcam/saxy/commit/6d12ee12b9e32e86ef598b3f3cafccd1840b2f41
patch
-
github.com
/qcam/saxy/security/advisories/GHSA-mm3m-xwmf-v698
vendor-advisory, related, advisory
-
cna.erlef.org
/cves/CVE-2026-66293.html
related, web
-
osv.dev
/vulnerability/EEF-CVE-2026-66293
related
-
hex.pm
/packages/saxy
package
Sources
- CVE List CVE-2026-66293
- NVD CVE-2026-66293
- OSV EEF-CVE-2026-66293
Fencer Intel 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.