CVE-2026-9390: XML::Sig versions before 0.71 for Perl allow XPath injection in ID lookup

Published Aug 3, 2026
·
Updated

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

verify() and getsignedxml() 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.

Affected Software

1 affected component
perl/XML::Sig<0.71

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade XML::Sig (Perl) to a version that resolves this vulnerability.

    Fixed in 0.71Patch XML::Sig versions before 0.71 for Perl allow XPath injection in ID lookup
  2. Configuration

    Add/enable validation for SignedInfo/Reference/@URI prior to verify() because lib/XML/Sig.pm builds XPath expressions by concatenating the unescaped URI value read from the document into the expression.

    XML::Sig (Perl) lib/XML/Sig.pm SignedInfo/Reference/@URI handling = Validate/escape SignedInfo/Reference/@URI input so it cannot inject XPath operators (e.g., reject/normalize single quotes) before verify() builds XPath by concatenation.
  3. Compensating control

    If you must verify documents with XML::Sig before upgrading past 0.71, ensure the SignedInfo/Reference/@URI value used for ID lookup does not contain characters that could break the XPath expression (e.g., a single quote) and is validated to match XML ID/NCName requirements before calling verify().

Event History

Aug 3, 2026
CVE Published
via MITRE·01:09 PM
Data Sourced
via MITRE·01:09 PM
RemedyDescriptionWeakness
Data Sourced
via NVD·02:16 PM
DescriptionSeverityWeakness
Free Weekly Intel

Don't miss critical vulnerabilities

Join thousands of security professionals who receive our weekly digest of trending CVEs, zero-days, and exploited vulnerabilities.

No spam. Unsubscribe anytime.

Frequently Asked Questions

1

What is the severity of CVE-2026-9390?

The severity of CVE-2026-9390 is rated at 45.

2

What impact does CVE-2026-9390 have on applications?

CVE-2026-9390 can lead to XPath injection vulnerabilities during the ID lookup in applications using affected versions of XML::Sig for Perl.

3

How do I fix CVE-2026-9390?

To fix CVE-2026-9390, upgrade to XML::Sig version 0.71 or later.

4

Which versions of XML::Sig are affected by CVE-2026-9390?

CVE-2026-9390 affects all versions of XML::Sig for Perl before 0.71.

5

What operations are vulnerable to CVE-2026-9390?

The verify() and _get_signed_xml() methods are vulnerable to XPath injection due to unescaped input in CVE-2026-9390.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203