Critical severity · published Aug 3, 2026
CVE-2026-9390
XML::Sig versions before 0.71 for Perl allow XPath injection in ID lookup
9.1
CVSS
0.5%
EPSS
No
On KEV
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.
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
Attack vector
Network
Complexity
Low
Privileges
None
User interaction
None
Confidentiality
High
Integrity
High
Availability
None
Scope
Unchanged
Exploitation
Is it being used?
Exploit prediction (EPSS)0.5% · higher than 43% of CVEs
Exploited in the wildNo evidence yet
CISA KEVNot listed
Ransomware campaign useNot known
Affected products
Which versions
XM
XML::Sig · TIMLEGGE
before 0.71 · source: vendor, NVD
Affected product
XM
XML::Sig
TIMLEGGE
More from XML::Sig
9.3
CVE-2025-40934
XML-Sig prior to 0.68 for Perl improperly validates XML without signatures
9.1
CVE-2026-9487
XML::Sig versions before 0.71 for Perl allow signature wrapping via duplicate ID
7.5
CVE-2026-18568
XML::Sig versions from 0.29 before 0.72 for Perl allow signature verification bypass because verify returns true when every signature was skipped before any cryptographic check