Vulnerability Description
XML::Sig versions before 0.71 for Perl allow signature wrapping via duplicate ID. _get_signed_xml() in lib/XML/Sig.pm, called from verify(), resolves the SignedInfo Reference/@URI to a node with the XPath expression "//*[@ID='$id']" and returns the first node of the resulting node set. A document in which two elements share that ID value is accepted: the digest and signature are checked against whichever element comes first in document order, and the duplicate is not detected. Such a document verifies successfully while an application that resolves the same ID independently can read the second, attacker supplied element; in a SAML2 context this places the contents of an Assertion under attacker control.
CVSS Score
CRITICAL
Affected Products
| Vendor | Product | Versions |
|---|---|---|
| Xml\ | \ | < 0.71, sig_project |
Related Weaknesses (CWE)
References
- https://github.com/perl-net-saml2/perl-XML-Sig/commit/4976bde5245df69b8e02c6ae06Patch
- https://metacpan.org/release/TIMLEGGE/XML-Sig-0.71/source/ChangesRelease Notes
FAQ
What is CVE-2026-9487?
CVE-2026-9487 is a vulnerability with a CVSS score of 9.1 (CRITICAL). XML::Sig versions before 0.71 for Perl allow signature wrapping via duplicate ID. _get_signed_xml() in lib/XML/Sig.pm, called from verify(), resolves the SignedInfo Reference/@URI to a node with the ...
How severe is CVE-2026-9487?
CVE-2026-9487 has been rated CRITICAL with a CVSS base score of 9.1/10. This is considered a critical vulnerability requiring immediate attention.
Is there a patch for CVE-2026-9487?
Check the references section above for vendor advisories and patch information. Affected products include: Xml\ \.