XML comment injection in Saxy encoder lets attackers inject markup
Key facts
- Attack vector
- Local
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Attack requirements
- Present
- Impact type
- —
- Confidentiality · integrity · availability
- None · Low · None
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA.
Summary
Saxy from 0.7.0 before 1.7.0 does not neutralize a double hyphen (--) in XML comment content. The encoder wraps comment text in comment delimiters without escaping it, so attacker-controlled text can close the comment early and inject sibling markup (CWE-91). An attacker who controls text the application serializes as a comment, with no privileges and no user interaction needed, can add elements, attributes, or text the application never built, and in HTML or SVG output this becomes stored cross-site scripting.
Written with Claude Haiku 5.5 from the sources below · 2026-11-06
Description from the CNA
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.
Why it matters now
SSVC decision points
Not available: CISA has not published SSVC decision points for this record.
Affected products
Remediation
Upgrade saxy by qcam to version 1.7.0, the fixed version.
Written with Claude Haiku 5.5 from the sources below · 2026-11-06
- Fix · CNA saxy (qcam) Fixed in 1.7.0
Fixed in the same release
Records fixed by the same vendor advisory or release, as the CNA lists them.
- Release ·
qcam saxy 1.7.0
3 records Highest priority Priority LOW 3 LOW
Other records, highest priority first
- TI-2026-85813 Unescaped processing instructions in Saxy encoder allow XML injectionPriority LOW 10
- TI-2026-85812 XML injection in Saxy via unescaped CDATA section terminatorPriority LOW 10
Timeline
- 2026-11-06 Threatist record created from CVE-2026-66293
- 2026-11-06 Alias added: GHSA-7h52-pqgv-pcwc
References
More qcam vulnerabilities
- TI-2026-85813 Unescaped processing instructions in Saxy encoder allow XML injection CVSS 4.0LOW 2.1
- TI-2026-85812 XML injection in Saxy via unescaped CDATA section terminator CVSS 4.0LOW 2.1
Sources
- CVE-2026-66293 · CVE Program
- CVE-2026-66293 · NVD
- FIRST EPSS
- GHSA-7h52-pqgv-pcwc · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences