Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconGenerate self-signed X.509 key pair
-
DeliveryCraft SAML Response with arbitrary identity assertion
-
ExploitEmbed attacker certificate in dsig:KeyInfo/dsig:X509Certificate
-
InstallPOST crafted response to application's ACS endpoint
-
C2verify_xml validates signature against embedded attacker cert
-
ExecuteNo trust anchor present, early-return success
-
ImpactAuthentication bypass grants arbitrary identity
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A04:2025 - Cryptographic Failures
ASVS 5.0
V11 - Cryptography Signature verification
|
| Exploitation Conditions | Exploitation requires that the target Perl application constructs Binding::POST or calls Assertion->new_from_xml without supplying a cacert, cert_text, or anchors argument - meaning no trust anchor is configured for SAML signature validation. This is a deployment-level misconfiguration, not a default-secure baseline: applications that correctly pass a trust anchor are entirely unaffected regardless of Net::SAML2 version. The attacker must be able to reach the application's SAML assertion consumer service (ACS) endpoint over the network and submit an HTTP POST request; no prior authentication to the application is required, since ACS endpoints accept unauthenticated POSTs by SAML specification. Exploitation is limited to service providers built on Net::SAML2 versions before 0.86 in Perl; IdP-side configurations and non-Perl SAML implementations are out of scope. |
| Impact | The provided CVSS 7.5 (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N) accurately reflects the threat model for vulnerable deployments: network-reachable SAML assertion consumer service endpoints are public-facing by design, exploitation requires no authentication, and attack complexity is low because no special conditions beyond reaching the endpoint are needed. No KEV listing and no confirmed POC exist at time of analysis, which lowers urgency slightly, but the vulnerability is mechanically trivial - the logic flaw is fully visible in public MetaCPAN source code and requires only standard SAML tooling to exploit. The critical limiting factor is deployment configuration: services that correctly pass a cacert, cert_text, or anchors argument are entirely unaffected. This means risk is high for misconfigured deployments but zero for correctly-configured ones, making a code audit of all Net::SAML2 callers the essential first step. EPSS data is not provided in the input; given the niche Perl library footprint, widespread automated scanning is unlikely but targeted exploitation of known misconfigured SSO deployments is plausible. |
| Exploit ScenarioDerived | An attacker identifies a Perl web application using Net::SAML2 for SSO whose POST binding was instantiated without a cacert argument. The attacker generates a self-signed X.509 key pair, crafts a SAML Response asserting any identity (e.g., an administrative user), signs it with their private key, and embeds the corresponding self-signed certificate in the dsig:KeyInfo element of the response XML. Posting this to the application's assertion consumer service URL causes Net::SAML2 to validate the signature as correct (it is, against the embedded key), find no trust anchor to enforce, and accept the forged identity - granting the attacker authenticated access as the claimed user. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 03, 2026
SAML authentication bypass in Net::SAML2 versions before 0.86 for Perl allows remote unauthenticated attackers to forge arbitrary SAML assertions against service providers that omit a trust anchor during library configuration. The flaw is in verify_xml, which exits early after validating the XML signature against the certificate embedded within the response itself - meaning an attacker who controls the response can supply their own self-signed certificate and sign any assertion they choose. No public exploit is identified at time of analysis, but the vulnerability is mechanically trivial to reproduce given that the vulnerable code path is fully documented in referenced MetaCPAN source files.
RemediationAI
Upgrade Net::SAML2 to version 0.86 or later immediately; the changelog confirming the fix is at https://metacpan.org/release/TIMLEGGE/Net-SAML2-0.88/source/Changes - upgrading to the latest available release (0.88 at time of writing) is safest, as fixes may have been applied incrementally across 0.86-0.88. If an immediate upgrade is not possible, the only effective compensating control is to audit every caller of Binding::POST->new and Assertion->new_from_xml in your Perl codebase and ensure each invocation explicitly passes a cacert, cert_text, or anchors parameter pointing to the trusted identity provider's certificate or CA bundle. Omitting this parameter is the direct cause of the vulnerability; there is no network-layer mitigation (WAF or firewall rule) that can substitute, since the attack arrives as a structurally valid SAML POST. Note that adding trust anchor parameters requires knowledge of which IdP certificates are legitimate - coordinate with your IdP operator to obtain the correct signing certificate before applying this workaround.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Net::SAML2 is a Perl CPAN module (author TIMLEGGE, CPE cpe:2.3:a:timlegge:net::saml2:*:*:*:*:*:*:*:*) implementing SAML 2.0 for service provider roles. The root cause is CWE-347 (Improper Verification of Cryptographic Signature): the function verify_xml in Net::SAML2::Role::VerifyXML (visible at MetaCPAN 0.85 source, line 32) calls XML::Sig to check the response signature, then immediately returns success with 'return if !$anchors && !$cacert' when no trust anchors are present. The XML::Sig check itself validates the signature against the X.509 certificate extracted from the response's own dsig:KeyInfo/dsig:X509Certificate element - a certificate entirely attacker-controlled. Binding::POST (POST.pm line 21) declares cacert as an optional Maybe[Str] with no default value, so any caller that omits cacert silently takes the unanchored path. The same early-return logic appears in _verify_encrypted_assertion (Assertion.pm line 84), which returns the raw XML unless cacert is set.
Know when Net gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
SAML ACS endpoints are public-facing and unauthenticated by design; no confidentiality or availability impact - only integrity via identity forgery.
Primary rating from Vendor (CPANSec).
CVSS VectorVendor: CPANSec
Lifecycle Timeline
4DescriptionCVE.org
Net::SAML2 versions before 0.86 for Perl allow SAML authentication bypass by verifying responses against the response-embedded certificate in verify_xml when no trust anchor is configured.
verify_xml in Net::SAML2::Role::VerifyXML runs "return if !$anchors && !$cacert;" as soon as the XML::Sig check succeeds, and that check uses the X.509 certificate taken from the response's own dsig:KeyInfo/dsig:X509Certificate element, so an unanchored response is checked only against the key it carries. Binding::POST declares cacert as an optional Maybe[Str] with no default, so a POST binding built without one takes that path, and _verify_encrypted_assertion returns early the same way with "return $xml unless $cacert;".
Any caller that constructs Binding::POST or calls Assertion->new_from_xml without a cacert, cert_text, or anchors argument accepts a response signed by an attacker generated key whose self-signed certificate is embedded in that response, authenticating an arbitrary assertion.
Executive ViewAI
Net::SAML2 library versions before 0.86 contain an authentication bypass vulnerability allowing unauthenticated remote attackers to forge arbitrary SAML assertions against service providers. This enables attackers to impersonate any user and gain unauthorized access to integrated applications. No public exploit is identified at time of analysis, but organizational exposure is significant given the fundamental nature of the flaw.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour
Remote code execution is possible in Node.js releases that bundle a vulnerable Brotli decoder: a malformed brotli-compre
.NET and Visual Studio Denial of Service Vulnerability. Rated high severity (CVSS 7.5), this vulnerability is remotely e
Heap-based buffer overflow (CWE-122) in Microsoft .NET and Visual Studio allows a network-based unauthenticated attacker
Heap-based buffer overflow in Microsoft Visual Studio 2022 and 2026 enables network-delivered remote code execution when
Privilege escalation in Microsoft .NET runtimes (8.0, 9.0, and 10.0) and Microsoft Visual Studio 2022 and 2026 results f
Heap-based buffer overflow (CWE-122) in Microsoft .NET enables local code execution across all actively supported .NET r
Local code execution via out-of-bounds write in Microsoft .NET allows an unauthenticated local attacker to achieve full
Local privilege escalation in Microsoft .NET (versions 8.0, 9.0, and 10.0) and Microsoft Visual Studio 2022/2026 allows
Denial-of-service in Microsoft .NET runtimes and Visual Studio allows unauthenticated remote attackers to crash or hang
Integer overflow in Microsoft .NET Framework and modern .NET runtimes enables local code execution with full process com
Use-after-free memory corruption in Microsoft's QUIC protocol implementation (MsQuic) exposes sensitive heap memory to u
EUVD-2026-52266
GHSA-p5j9-p2w8-q5rw
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB