CVE-2026-18108: Net::SAML2 versions before 0.86 for Perl allow authentication bypass because _verify_encrypted_assertion accepts an EncryptedAssertion whose decrypted content carries no signature
Net::SAML2 versions before 0.86 for Perl allow authentication bypass because verifyencryptedassertion accepts an EncryptedAssertion whose decrypted content carries no signature.
verifyencryptedassertion 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 newfromxml 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 keyfile, 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 keyfile configured do not decrypt and are unaffected.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
Net::SAML2 (Perl)to a version that resolves this vulnerability.Fixed in 0.86 - Compensating control
Only configure decryption key_file on Net::SAML2 callers that truly need to accept EncryptedAssertions; callers with no key_file configured do not decrypt and are unaffected.
Event History
Frequently Asked Questions
What is the severity of CVE-2026-18108?
CVE-2026-18108 has a severity rating of 89, indicating a high risk of authentication bypass.
How do I fix CVE-2026-18108?
To fix CVE-2026-18108, update to Net::SAML2 version 0.86 or later.
What impact does CVE-2026-18108 have on applications using Net::SAML2?
CVE-2026-18108 allows attackers to bypass authentication by exploiting the lack of signature verification in decrypted assertions.
Which versions of Net::SAML2 are affected by CVE-2026-18108?
CVE-2026-18108 affects all versions of Net::SAML2 prior to 0.86.
Is there any workaround for CVE-2026-18108?
There are no known workarounds for CVE-2026-18108; the best course of action is to update the software.