Read the docs
TI-2026-85811 Aliases CVE-2026-66293GHSA-7h52-pqgv-pcwc

XML comment injection in Saxy encoder lets attackers inject markup

Priority LOW 10CWE-91Published · Updated

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

EPSS 0.00168 6th percentileScored 2026-11-07
Fix Fixed saxy (qcam): 1.7.0

SSVC decision points

Not available: CISA has not published SSVC decision points for this record.

Affected products

VendorProductAffected versionsFixed inStatusSource
qcamsaxy0.7.0 to before 1.7.01.7.0Patch availableCNA
  • saxy Vendorqcam Affected 0.7.0 to before 1.7.0 Fixed in 1.7.0 Patch available CNA

CPE names CNA · 1

CPEVersionsRoleVendor
cpe:2.3:a:qcam:saxy:*:*:*:*:*:*:*:*——qcam
  • cpe:2.3:a:qcam:saxy:*:*:*:*:*:*:*:* Versions — — ·qcam

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

  1. 2026-11-06 Threatist record created from CVE-2026-66293
  2. 2026-11-06 Alias added: GHSA-7h52-pqgv-pcwc

References

  • 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