Read the docs
TI-2026-85813 Aliases CVE-2026-66295GHSA-wm7q-49mg-7frh

Unescaped processing instructions in Saxy encoder allow XML injection

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 writes processing instruction targets and content into XML output without validation or escaping. A value containing ?> closes the instruction early, so attacker-chosen markup appears at document level. Applications that pass untrusted input to Saxy.XML.processing_instruction/2 can therefore inject elements and attributes into serialized documents, as CWE-91 describes.

Written with Claude Haiku 5.5 from the sources below · 2026-11-06

Description from the CNA

Saxy's XML encoder writes the target and the content of a processing instruction into the output document verbatim, without validation or escaping. The encoder builds the construct by concatenating both fields between <? and ?>, so neither field is checked against the constraints the XML specification places on it. Because ?> terminates a processing instruction, a target or content value containing that sequence closes the construct at a position the attacker chooses. Everything the attacker writes after it is emitted as ordinary markup at document level, which allows arbitrary elements, attributes, and further processing instructions to be injected into the serialized document. Appending a matching <? keeps the encoder's own terminator well-formed, so the result still parses and the injection is silent rather than a visible corruption. The target is additionally unconstrained by the XML Name production, which permits injection before the remainder of the processing instruction. The result is XML injection into a serialized document: the tree the application asks Saxy to encode and the tree a downstream parser reads back are no longer the same. Character data, attribute values, and comments are all escaped by the encoder, so processing instructions are the one construct that passes user bytes through untouched. Since Saxy.XML.processing_instruction/2 is a documented public builder, an application inherits the flaw without misusing the API. The consequences depend on what consumes the XML: forged records in a feed or export read by another system, injected stylesheet or rendering directives, or active content where the output is served to a browser as XML or SVG. 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 to version 1.7.0, the first 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-85812 XML injection in Saxy via unescaped CDATA section terminatorPriority LOW 10
    • TI-2026-85811 XML comment injection in Saxy encoder lets attackers inject markupPriority LOW 10

Timeline

  1. 2026-11-06 Threatist record created from CVE-2026-66295
  2. 2026-11-06 Alias added: GHSA-wm7q-49mg-7frh

References

  • TI-2026-85812 XML injection in Saxy via unescaped CDATA section terminator CVSS 4.0LOW 2.1
  • TI-2026-85811 XML comment injection in Saxy encoder lets attackers inject markup CVSS 4.0LOW 2.1

Sources