CVE-2026-18568
Awaiting Analysis Awaiting Analysis - Queue

XML Signature Verification Bypass in XML::Sig for Perl

Vulnerability report for CVE-2026-18568, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-08-03

Last updated on: 2026-08-03

Assigner: CPANSec

Description

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. verify in lib/XML/Sig.pm counts the `//dsig:Signature` elements into `$numsigs` and iterates over them, but two paths reach `next` before any digest or key check runs: a `SignedInfo/Reference/@URI` that resolves to no element while `$numsigs` is greater than 1, and, when `id_attr` is set, a reference that does not match the requested ID. The loop records nothing about what it checked, so when every signature takes one of those paths control reaches the unconditional `return 1` that ends verify. Two `Signature` elements whose Reference URI names an ID that no element carries is enough, as is one such element combined with `id_attr`. Any caller that passes untrusted XML to verify can receive a true return for a document in which no digest and no signature value was checked; a `cert` or `cert_text` trust anchor does not change this, because no key check runs. Versions up to 0.28 use an XML::XPath based verify that has no such skip and are not affected.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-08-03
Last Modified
2026-08-03
Generated
2026-08-03
AI Q&A
2026-08-03
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Currently, no data is known.

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-347 The product does not verify, or incorrectly verifies, the cryptographic signature for data.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

XML::Sig versions from 0.29 to 0.72 for Perl have a signature verification bypass. The verify function returns true even when no cryptographic checks are performed on signatures. This happens because the function skips checking signatures if their Reference URI does not match any element ID or if the URI resolves to no element, leading to a false positive verification.

Detection Guidance

This vulnerability can be detected by checking the installed version of XML::Sig for Perl. Run 'cpanm XML::Sig' or check the version in your Perl module directory. Versions 0.29 to 0.71 are vulnerable.

Impact Analysis

If you use XML::Sig to verify untrusted XML documents, an attacker could craft XML with fake signatures that bypass verification. This means the system would incorrectly trust unsigned or tampered XML, potentially leading to unauthorized actions or data manipulation.

Compliance Impact

This vulnerability could undermine compliance with GDPR and HIPAA by allowing unauthorized data access or tampering if XML signatures are used for authentication or integrity checks. Trusted XML processing is critical for these regulations, and bypassing verification risks violating their requirements for data protection and integrity.

Mitigation Strategies

Upgrade XML::Sig to version 0.72 or later. If using versions up to 0.28, no action is needed as they are not affected.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-18568. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart