CVE-2026-9390

XML::Sig versions before 0.71 for Perl allow XPath injection in ID lookup

Published Aug 3, 2026 CVSS 3.1 · 9.1 Critical EPSS < 1% KEV · Not listed
Description
XML::Sig versions before 0.71 for Perl allow XPath injection in ID lookup.

verify() and _get_signed_xml() in lib/XML/Sig.pm build XPath expressions by concatenating the SignedInfo/Reference/@URI value read from the document being verified. The value is neither escaped nor checked against the NCName grammar that XML requires of an ID, so a URI containing a single quote closes the string literal in the generated expression and appends arbitrary XPath operators.

A crafted URI can make the lookup match elements the reference does not name, or every element in the document, so which node is selected for digest verification is decided by the injected expression rather than by the reference.

Remediation

Vendor Solution

Upgrade to version 0.71

Tracking

Sign in to view the affected projects.

Advisories

No advisories available
History
Type Values Removed Values Added
Metrics cvssV3_1

{'score': 9.1, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N'}

ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}

Type Values Removed Values Added
First Time appeared Timlegge
Timlegge xml::sig
Vendors & Products Timlegge
Timlegge xml::sig
Type Values Removed Values Added
Description XML::Sig versions before 0.71 for Perl allow XPath injection in ID lookup. verify() and _get_signed_xml() in lib/XML/Sig.pm build XPath expressions by concatenating the SignedInfo/Reference/@URI value read from the document being verified. The value is neither escaped nor checked against the NCName grammar that XML requires of an ID, so a URI containing a single quote closes the string literal in the generated expression and appends arbitrary XPath operators. A crafted URI can make the lookup match elements the reference does not name, or every element in the document, so which node is selected for digest verification is decided by the injected expression rather than by the reference.
Title XML::Sig versions before 0.71 for Perl allow XPath injection in ID lookup
Weaknesses CWE-1287
CWE-643
References
Weaknesses

Sources

Status
PUBLISHED
Assigner
CPANSec
Published
Updated
Aug 3, 2026, 7:58 PM
Reserved
May 23, 2026, 8:04 PM
Status
Analyzed
Published
Aug 3, 2026, 2:16 PM
Modified
Oct 23, 2026, 9:10 PM