Skip to main content

Net::SAML2 EUVDEUVD-2026-52268

| CVE-2026-18108 CRITICAL
Improper Verification of Cryptographic Signature (CWE-347)
2026-08-03 CPANSec GHSA-g48m-j5m7-625h
9.8
CVSS 3.1 · Vendor: CPANSec
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Fetch SP metadata, extract encryption cert
  2. Delivery
    Forge unsigned assertion with victim NameID
  3. Exploit
    Encrypt to SP cert, wrap in samlp:Response
  4. Execution
    POST to assertion consumer service
  5. Persist
    Unsigned assertion accepted as verified
  6. Impact
    Authenticated as arbitrary user

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A04:2025 - Cryptographic Failures
ASVS 5.0
V11 - Cryptography Signature verification
Exploitation Conditions

The target Service Provider must be built on Net::SAML2 before 0.86 AND be configured with a decryption key_file so it accepts EncryptedAssertions - this is the exact precondition; SPs with no key_file never decrypt and are not exploitable. Given that configuration, exploitation needs no authentication, no user interaction, and no non-public information: the SP's encryption certificate is deliberately published in its SAML metadata, so any party can encrypt an unsigned assertion to it. The attacker must simply produce a samlp:Response containing an EncryptedAssertion with no dsig:Signature and deliver it to the assertion consumer service endpoint. The only meaningful limiting factor is the key_file/EncryptedAssertion configuration; there is no version-specific, platform-specific, or timing constraint beyond running an unpatched (<0.86) release.

Impact

This is a genuine high-priority issue, not a CVSS-inflation case. The provided CVSS 3.1 vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H (9.8 Critical) is well supported by the description: exploitation is network-based, requires no authentication and no user interaction, and yields full identity impersonation. Encryption to a published certificate is intentionally public, so there is no secret the attacker must obtain, and complexity is genuinely low - the attack is deterministic once the SP accepts EncryptedAssertions. The one real limiter, which raw CVSS does not capture, is a configuration precondition: only SPs configured with a decryption key_file (i.e. that actually accept EncryptedAssertions) are exploitable; callers without a key_file never decrypt and are unaffected. No EPSS score, KEV listing, or SSVC decision data was provided, so exploitation-probability and automatability signals are unavailable; the vulnerability is not on CISA KEV and no active exploitation is claimed. The bug was reported by CPANSec (a credible coordinated-disclosure source) and the fixing commit is public, which somewhat lowers the barrier to reverse-engineering a working exploit even though no POC was supplied.

Exploit ScenarioDerived

An attacker retrieves the target SP's published SAML metadata, extracts its encryption certificate, and crafts a SAML assertion whose NameID is a privileged victim account. They encrypt this unsigned assertion to the SP's certificate, wrap it in a samlp:Response, and POST it to the assertion consumer service. Because the vulnerable code treats the unsigned decrypted assertion as verified, the SP authenticates the attacker as the chosen user. No POC was provided, but the flaw is deterministic and the fixing commit is public.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 03, 2026

Authentication bypass in the Net::SAML2 Perl module before 0.86 lets an unauthenticated attacker log in as any user against Service Providers that accept EncryptedAssertions. The flaw stems from _verify_encrypted_assertion returning a decrypted assertion as 'verified' whenever it contains no dsig:Signature element, skipping both the signature and trust-anchor checks. Because an SP publishes its encryption certificate in SAML metadata, anyone can encrypt a forged unsigned assertion to it, wrap it in a samlp:Response, and post it to the assertion consumer service; no public exploit identified at time of analysis but the logic bug is trivially reproducible.

RemediationAI

Vendor-released patch: upgrade Net::SAML2 to version 0.86 or later, which rejects assertions lacking a trusted signature (see https://metacpan.org/release/TIMLEGGE/Net-SAML2-0.86/changes and fixing commit https://github.com/perl-net-saml2/perl-Net-SAML2/commit/d916468586404518b8cf3c78dbd001cc1f1046a7.patch). Do not set the new insecure_trust_embedded_cert => 1 flag in production - it re-enables trusting embedded certificates and is documented for dev/test only. If you cannot upgrade immediately, the most effective compensating control is to remove the decryption key_file from the SP configuration so EncryptedAssertions are no longer accepted; the trade-off is that any IdP relying on assertion encryption will break, so coordinate with your IdP to use signed (unencrypted) assertions delivered over TLS in the interim. Additionally, enforce that every accepted assertion is signed at the application layer and validate the IdP signing certificate against a pinned trust anchor before consuming NameID/attributes.

Affected VersionsENISA

Net::SAML2 0 <0.86

Affected Packages

euvd net_saml2 fix: 0.86

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 SAML 2.0 toolkit (CPAN distribution timlegge/Net::SAML2) used to build SAML Service Providers and Identity Providers. In SAML SSO, an IdP asserts a user's identity via a signed Assertion; when confidentiality is required the assertion is delivered as an EncryptedAssertion encrypted to the SP's published encryption certificate. Integrity and authenticity are supposed to come from an XML Digital Signature (dsig:Signature) that the SP validates against a trusted IdP certificate (trust anchor). The root cause is CWE-347 (Improper Verification of Cryptographic Signature): in Assertion.pm, _verify_encrypted_assertion executes 'return $xml unless $xpath->exists('dsig:Signature', $assert);', meaning that when the decrypted assertion has no signature at all, the code short-circuits and treats it as valid instead of rejecting it. The signature verification and cacert trust-anchor logic are gated behind the presence of a signature, so an unsigned assertion never reaches them and its NameID and attributes are consumed by new_from_xml. The patch (commit d9164685) removes the best-effort anchoring on the first signature reference and instead croaks 'No trusted signature found in the assertion' unless the caller explicitly opts in with insecure_trust_embedded_cert => 1 (documented dev/test only), and adds a guard that dies when no Assertion is present.

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

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

Network-reachable ACS, no auth or interaction, and a published cert make it AV:N/AC:L/PR:N/UI:N; full identity impersonation yields C:H/I:H/A:H, though it applies only to SPs accepting EncryptedAssertions.

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

Primary rating from Vendor (CPANSec).

CVSS VectorVendor: CPANSec

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

3
CVSS changed
Aug 03, 2026 - 20:22 NVD
9.8 (CRITICAL)
CVE Published
Aug 03, 2026 - 13:00 cve.org
UNKNOWN (no severity yet)
CVE Published
Aug 03, 2026 - 13:00 cve.org
CRITICAL 9.8

DescriptionCVE.org

Net::SAML2 versions before 0.86 for Perl allow authentication bypass because _verify_encrypted_assertion accepts an EncryptedAssertion whose decrypted content carries no signature.

_verify_encrypted_assertion decrypts the EncryptedAssertion and returns it as verified when it carries no signature, via "return $xml unless $xpath->exists('dsig:Signature', $assert);". The signature check and the trust anchor check that follow run only when a signature is present, so a decrypted assertion with no dsig:Signature element reaches new_from_xml unverified and its NameID and attributes are read into the assertion object. An SP's encryption certificate is published in its SAML metadata so the IdP can encrypt to it, so any party can encrypt an unsigned assertion to that certificate, wrap it in a samlp:Response, and post it to the assertion consumer service.

Any caller that configures a decryption key_file, and so accepts EncryptedAssertions, takes identity fields from an assertion that no trust anchor covers, and an unauthenticated party can authenticate as an arbitrary user. Callers with no key_file configured do not decrypt and are unaffected.

Executive ViewAI

Why It Matters

The Net::SAML2 Perl module before version 0.86 contains a critical authentication bypass in encrypted assertion validation, allowing unauthenticated attackers to forge SAML assertions and impersonate any user. Organizations running vulnerable versions face immediate risk of unauthorized access to systems relying on SAML-based authentication.

Business Impact: Severe
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 87% exploitable
Prevalence
Low
niche Perl SAML library, limited to Perl-based SP deployments
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GitHub VulDB

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.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Out-of-Cycle
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
Very High
Technical Impact
Total

Priority Score

49
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +49
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

More in Net

View all
CVE-2023-44487 HIGH POC
7.5 Oct 10

Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour

CVE-2026-111497 CRITICAL POC
9.2 Oct 21

Remote code execution is possible in Node.js releases that bundle a vulnerable Brotli decoder: a malformed brotli-compre

CVE-2023-38180 HIGH
7.5 Aug 08

.NET and Visual Studio Denial of Service Vulnerability. Rated high severity (CVSS 7.5), this vulnerability is remotely e

CVE-2026-69439 HIGH POC
8.8 Sep 08

Heap-based buffer overflow (CWE-122) in Microsoft .NET and Visual Studio allows a network-based unauthenticated attacker

CVE-2026-71328 HIGH POC
8.8 Sep 08

Heap-based buffer overflow in Microsoft Visual Studio 2022 and 2026 enables network-delivered remote code execution when

CVE-2026-62886 HIGH POC
7.8 Aug 11

Privilege escalation in Microsoft .NET runtimes (8.0, 9.0, and 10.0) and Microsoft Visual Studio 2022 and 2026 results f

CVE-2026-62871 HIGH POC
7.8 Aug 11

Heap-based buffer overflow (CWE-122) in Microsoft .NET enables local code execution across all actively supported .NET r

CVE-2026-70354 HIGH POC
7.8 Aug 11

Local code execution via out-of-bounds write in Microsoft .NET allows an unauthenticated local attacker to achieve full

CVE-2026-62909 HIGH POC
7.8 Aug 11

Local privilege escalation in Microsoft .NET (versions 8.0, 9.0, and 10.0) and Microsoft Visual Studio 2022/2026 allows

CVE-2026-62901 HIGH POC
7.5 Aug 11

Denial-of-service in Microsoft .NET runtimes and Visual Studio allows unauthenticated remote attackers to crash or hang

CVE-2026-62897 HIGH POC
7.0 Aug 11

Integer overflow in Microsoft .NET Framework and modern .NET runtimes enables local code execution with full process com

CVE-2026-62898 HIGH POC
7.5 Aug 11

Use-after-free memory corruption in Microsoft's QUIC protocol implementation (MsQuic) exposes sensitive heap memory to u

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