Description
MojoX::Authentication versions before 0.006 for Perl allow SAML authentication bypass because parse_assertion builds Net::SAML2::Binding::POST without a trust anchor.

parse_assertion in MojoX::Authentication::Model::SAML2 calls Net::SAML2::Binding::POST->new with no cacert, cert_text or anchors argument, then passes the returned XML to Net::SAML2::Protocol::Assertion->new_from_xml with the IdP signing certificate as cacert. In Net::SAML2 before 0.86 that certificate guards only encrypted assertions, so the signature on an unencrypted assertion is checked against the certificate the response itself carries.

An attacker starts a SAML login, then posts a response signed with a certificate of their own. The audience, InResponseTo and timestamp checks that follow are all satisfiable by the attacker, so the response authenticates any NameID it carries.
Published: 2026-09-06
Score: 9.8 Critical
EPSS: < 1% Very Low
KEV: No
Impact: Authentication Bypass via SAML
Action: Patch Immediately
AI Analysis

Impact

The vulnerability resides in the MojoX::Authentication module prior to version 0.006. The parse_assertion routine constructs a Net::SAML2::Binding::POST object without specifying a trust anchor, causing the signature on a SAML assertion to be validated against a certificate embedded in the assertion itself. An attacker can therefore forge a signed SAML response, satisfying audience, InResponseTo, and timestamp checks, and authenticate as any arbitrary user. This flaw is classed as CWE-347 and allows an attacker to obtain unauthorized access without needing valid credentials.

Affected Systems

All installations of the Perl module MojoX::Authentication that are at a version older than 0.006 are vulnerable. No other products or vendors are known to be affected according to the CNA data.

Risk and Exploitability

The vulnerability is a high‑severity authentication bypass with a CVSS score of 9.8. Though the EPSS score is low (< 1%) and it is not listed in KEV, the logical exploitation path is straightforward: initiate a SAML login flow and submit a forged assertion. The attacker only needs the ability to post an HTTP request to the SAML endpoint; no privileged server access or additional credentials are required. Given the critical nature of authentication, the risk is substantial should the environment rely on the affected module.

Generated by OpenCVE AI on September 10, 2026 at 03:36 UTC.

Remediation

Vendor Solution

Upgrade to MojoX-Authentication 0.006 or later.


Vendor Workaround

For deployments that cannot upgrade, install Net::SAML2 0.86 or later. SAML login then fails rather than accepting a forged assertion.


OpenCVE Recommended Actions

  • Apply MojoX-Authentication v0.006 or newer to all applications that currently use older versions.
  • If an immediate upgrade is not possible, install Net::SAML2 0.86 or later so that any forged SAML response will cause authentication to fail.
  • Disable or remove SAML authentication endpoints in environments where the vulnerable module is still in use until a patch can be applied.

Generated by OpenCVE AI on September 10, 2026 at 03:36 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 08 Sep 2026 19:30:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 9.8, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H'}

ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Mon, 07 Sep 2026 08:45:00 +0000

Type Values Removed Values Added
First Time appeared Perl
Perl mojox::authentication
Vendors & Products Perl
Perl mojox::authentication

Sun, 06 Sep 2026 22:30:00 +0000

Type Values Removed Values Added
Description MojoX::Authentication versions before 0.006 for Perl allow SAML authentication bypass because parse_assertion builds Net::SAML2::Binding::POST without a trust anchor. parse_assertion in MojoX::Authentication::Model::SAML2 calls Net::SAML2::Binding::POST->new with no cacert, cert_text or anchors argument, then passes the returned XML to Net::SAML2::Protocol::Assertion->new_from_xml with the IdP signing certificate as cacert. In Net::SAML2 before 0.86 that certificate guards only encrypted assertions, so the signature on an unencrypted assertion is checked against the certificate the response itself carries. An attacker starts a SAML login, then posts a response signed with a certificate of their own. The audience, InResponseTo and timestamp checks that follow are all satisfiable by the attacker, so the response authenticates any NameID it carries.
Title MojoX::Authentication versions before 0.006 for Perl allow SAML authentication bypass because parse_assertion builds Net::SAML2::Binding::POST without a trust anchor
Weaknesses CWE-347
References

Subscriptions

Perl Mojox::authentication
cve-icon MITRE

Status: PUBLISHED

Assigner: CPANSec

Published:

Updated: 2026-09-08T18:41:46.209Z

Reserved: 2026-09-06T17:59:12.036Z

Link: CVE-2026-86304

cve-icon Vulnrichment

Updated: 2026-09-08T18:41:43.318Z

cve-icon NVD

Status : Deferred

Published: 2026-09-06T23:17:39.483

Modified: 2026-09-08T19:20:13.933

Link: CVE-2026-86304

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-10T03:45:06Z

Weaknesses
  • CWE-347

    Improper Verification of Cryptographic Signature