Skip to main content

XML::Sig EUVDEUVD-2026-52270

| CVE-2026-9487 CRITICAL
Improper Verification of Cryptographic Signature (CWE-347)
2026-08-03 CPANSec GHSA-wqp7-2ww4-q6mf
9.1
CVSS 3.1 · Vendor: CPANSec
Share

Severity by source

Vendor (CPANSec) PRIMARY
9.1 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
vuln.today AI
9.1 CRITICAL

Unauthenticated network submission of a crafted document (PR:N/AV:N/AC:L) bypasses signature checks, enabling assertion forgery and impersonation (I:H) and access as the victim (C:H); no availability impact.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (CPANSec).

CVSS VectorVendor: CPANSec

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
None

Lifecycle Timeline

5
Source Code Evidence Fetched
Aug 03, 2026 - 20:27 vuln.today
Analysis Generated
Aug 03, 2026 - 20:27 vuln.today
CVSS changed
Aug 03, 2026 - 20:22 NVD
9.1 (CRITICAL)
CVE Published
Aug 03, 2026 - 13:14 cve.org
CRITICAL 9.1
CVE Published
Aug 03, 2026 - 13:14 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

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.

AnalysisAI

Signature verification bypass in the Perl XML::Sig module before 0.71 allows XML Signature Wrapping (XSW) via duplicate ID attributes, letting attackers forge signed content that still validates. verify() resolves a signed Reference URI with the XPath "//*[@ID='$id']" and trusts the first matching node, so a document containing two elements with the same ID passes verification while a downstream consumer reads the attacker-supplied second element; in a SAML2 SP this puts Assertion contents under attacker control. …

Unlock full vulnerability intelligence

  • Risk assessment & exploitation conditions
  • Attack chain visualization
  • Remediation with exact patch versions
  • Threat intelligence from 22 sources
  • Personal watchlist & email alerts

Free forever · No credit card required

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata

Access
Obtain a validly signed XML/SAML assertion
Delivery
Duplicate its ID on a forged attacker element
Exploit
Submit wrapped document to verifier
Execution
XML::Sig validates first node, returns success
Persist
Application reads second element by ID
Impact
Authentication bypass / assertion forgery

Vulnerability AssessmentAI

Exploitation Exploitation requires that the target application uses XML::Sig (before 0.71) to verify a signature whose SignedInfo Reference points to an element by ID, and that some component downstream re-resolves that same ID independently to consume element content - the canonical case being a SAML2 Service Provider that verifies with XML::Sig and then reads the Assertion (the description's 'in a SAML2 context this places the contents of an Assertion under attacker control'). … Additional conditions and limiting factors are described in the full assessment.
Risk Assessment The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N, score 9.1) indicates a network-reachable, low-complexity, unauthenticated attack - consistent with the description, since an attacker only needs to submit a crafted XML/SAML document to a service that verifies with XML::Sig. … Full risk analysis with EPSS, KEV, and SSVC signal comparison available after sign-in.
Exploit Scenario An attacker obtains or intercepts a legitimately signed SAML assertion (ID="dup") and appends a second saml:Assertion with the same ID="dup" but attacker-chosen Subject content after the signed element. The Perl SAML SP calls XML::Sig->verify(), which matches the signature against the first (legit) assertion and returns success, while the application's assertion-consumption code reads the second element - logging the attacker in as an arbitrary user. …
Remediation Upgrade to XML::Sig 0.71 or later - Vendor-released patch: version 0.71, which changes verify() to call findnodes('//*[@ID=...]') and reject any document where the reference ID matches more than one element (returns 0 when $ref_count > 1), plus zero-match handling; the fix is in commit 4976bde5245df69b8e02c6ae061acbd4891cd7f9 (https://github.com/perl-net-saml2/perl-XML-Sig/commit/4976bde5245df69b8e02c6ae061acbd4891cd7f9.patch) and documented at https://metacpan.org/release/TIMLEGGE/XML-Sig-0.71/source/Changes. … Detailed patch versions, workarounds, and compensating controls in full report.

Recommended ActionAI

Within 24 hours, identify all systems running Perl XML::Sig module versions prior to 0.71, prioritizing SAML2 service providers and authentication infrastructure. …

Sign in for detailed remediation steps and compensating controls.

Threat intelligence, references, and detailed analysis are available after sign-in.

CVE-2013-3900 MEDIUM
5.5 Dec 11

Why is Microsoft republishing a CVE from 2013? We are republishing CVE-2013-3900 in the Security Update Guide to update

CVE-2026-48558 CRITICAL POC
9.5 Jun 12

Authentication bypass in SimpleHelp 5.5.15 and prior (plus 6.0 pre-release builds) allows remote unauthenticated attacke

CVE-2025-59718 CRITICAL
9.8 Dec 09

Authentication bypass in Fortinet FortiOS, FortiProxy, and FortiSwitchManager allows unauthenticated remote attackers to

CVE-2025-25291 CRITICAL POC
9.3 Mar 12

ruby-saml provides security assertion markup language (SAML) single sign-on (SSO) for Ruby. Rated critical severity (CVS

CVE-2025-25292 CRITICAL POC
9.3 Mar 12

ruby-saml provides security assertion markup language (SAML) single sign-on (SSO) for Ruby. Rated critical severity (CVS

CVE-2022-25898 CRITICAL POC
9.8 Jul 01

The package jsrsasign before 10.5.25 are vulnerable to Improper Verification of Cryptographic Signature when JWS or JWT

CVE-2024-42004 CRITICAL POC
9.8 Dec 18

A library injection vulnerability exists in Microsoft Teams (work or school) 24046.2813.2770.1094 for macOS. Rated criti

CVE-2024-41145 CRITICAL POC
9.8 Dec 18

A library injection vulnerability exists in the WebView.app helper app of Microsoft Teams (work or school) 24046.2813.27

CVE-2024-41138 CRITICAL POC
9.8 Dec 18

A library injection vulnerability exists in the com.microsoft.teams2.modulehost.app helper app of Microsoft Teams (work

CVE-2024-45409 CRITICAL POC
9.8 Sep 10

The Ruby SAML library is for implementing the client side of a SAML authorization. Rated critical severity (CVSS 9.8), t

CVE-2022-35929 CRITICAL POC
9.8 Aug 04

cosign is a container signing and verification utility. Rated critical severity (CVSS 9.8), this vulnerability is remote

CVE-2022-31053 CRITICAL POC
9.8 Jun 13

Biscuit is an authentication and authorization token for microservices architectures. Rated critical severity (CVSS 9.8)

Share

EUVD-2026-52270 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy