Skip to main content

miniOrange SAML SSO CVE-2026-15981

| EUVDEUVD-2026-48429 CRITICAL
Improper Authentication (CWE-287)
2026-07-23 Wordfence GHSA-wgjx-q85h-87v2
9.8
CVSS 3.1 · Vendor: Wordfence
Share

Severity by source

Vendor (Wordfence) 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

Remote, single unauthenticated request with no user interaction yields full admin account takeover, so AV:N/AC:L/PR:N/UI:N and C:H/I:H/A:H; scope unchanged within WordPress.

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 (Wordfence).

CVSS VectorVendor: Wordfence

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

Lifecycle Timeline

2
Analysis Generated
Jul 23, 2026 - 21:17 vuln.today
CVE Published
Jul 23, 2026 - 20:33 cve.org
CRITICAL 9.8

DescriptionCVE.org

The SAML Single Sign On - SSO Login plugin for WordPress is vulnerable to Authentication Bypass in all versions up to, and including, 5.4.4. This is due to the mo_saml_validate_signature() function performing a loose boolean check on the raw tri-state integer returned by PHP's openssl_verify(), causing an error return value of -1 to be evaluated as truthy and therefore treated as a successful signature verification. This makes it possible for unauthenticated attackers to log in as any existing WordPress user, including administrators, by submitting a crafted SAMLResponse containing an attacker-controlled NameID and a deliberately malformed signature value that triggers an OpenSSL processing error - bypassing verification entirely and resulting in wp_set_auth_cookie() being called for the targeted account.

AnalysisAI

Authentication bypass in the miniOrange SAML Single Sign On - SSO Login plugin for WordPress (all versions through 5.4.4) lets unauthenticated attackers log in as any user, including administrators. The flaw stems from mo_saml_validate_signature() applying a loose boolean check to the tri-state integer returned by PHP's openssl_verify(), so the error value -1 is treated as truthy and accepted as a valid signature. Reported by Wordfence with a CVSS of 9.8; no public exploit has been identified at time of analysis, though the root cause and vulnerable code lines are publicly documented in the plugin source.

Technical ContextAI

The vulnerability lives in the plugin's SAML 2.0 response-handling stack (class-mo-saml-login-validate.php, class-mo-saml-utilities.php, and the bundled SAML2Core XML security library). PHP's openssl_verify() is explicitly tri-state: it returns 1 for a valid signature, 0 for an invalid signature, and -1 when an internal OpenSSL processing error occurs. Because the code evaluates the raw return value in a loose boolean context rather than strictly comparing to === 1, the -1 error state passes as success. This is a classic CWE-287 (Improper Authentication) failure driven by a signature-verification logic error: cryptographic verification is effectively skipped, so a SAML assertion's NameID is trusted without a validated signature. Affected package per CPE is cpe:2.3:a:cyberlord92:saml_single_sign_on_-_sso_login (the miniorange-saml-20-single-sign-on plugin).

RemediationAI

Update the plugin to the fixed release published in WordPress.org changeset 3611421 (https://plugins.trac.wordpress.org/changeset/3611421/miniorange-saml-20-single-sign-on); an upstream fix is available as a committed changeset, but a specific tagged patched version was not independently confirmed from the provided data, so verify the installed version is newer than 5.4.4 after updating. If you cannot patch immediately, deactivate the SAML SSO Login plugin to close the bypass entirely - the trade-off is that SAML-based login becomes unavailable and users must fall back to standard WordPress authentication. As an interim compensating control, restrict network access to the SAML assertion consumer/login endpoints (for example via WAF rules or IP allowlisting to trusted IdP egress addresses) so arbitrary unauthenticated SAMLResponse submissions are blocked; note this only works where the IdP has a stable, known source range. Review authentication logs and existing admin accounts for unexpected logins created via SAML, since the bypass leaves few other artifacts.

CVE-2014-0160 HIGH POC
7.5 Apr 07

The (1) TLS and (2) DTLS implementations in OpenSSL 1.0.1 before 1.0.1g do not properly handle Heartbeat Extension packe

CVE-2014-0195 MEDIUM POC
6.8 Jun 05

The dtls1_reassemble_fragment function in d1_both.c in OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0

CVE-2014-0224 HIGH POC
7.4 Jun 05

OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph

CVE-2016-0800 MEDIUM POC
5.9 Mar 01

The SSLv2 protocol, as used in OpenSSL before 1.0.1s and 1.0.2 before 1.0.2g and other products, requires a server to se

CVE-2015-0204 MEDIUM POC
4.3 Jan 09

The ssl3_get_key_exchange function in s3_clnt.c in OpenSSL before 0.9.8zd, 1.0.0 before 1.0.0p, and 1.0.1 before 1.0.1k

CVE-2015-4000 LOW POC
3.7 May 21

The TLS protocol 1.2 and earlier, when a DHE_EXPORT ciphersuite is enabled on a server but not on a client, does not pro

CVE-2014-3566 LOW POC
3.4 Oct 15

The SSL protocol 3.0, as used in OpenSSL through 1.0.1i and other products, uses nondeterministic CBC padding, which mak

CVE-2016-2107 MEDIUM POC
5.9 May 05

The AES-NI implementation in OpenSSL before 1.0.1t and 1.0.2 before 1.0.2h does not consider memory allocation during a

CVE-2015-1793 MEDIUM POC
6.5 Jul 09

The X509_verify_cert function in crypto/x509/x509_vfy.c in OpenSSL 1.0.1n, 1.0.1o, 1.0.2b, and 1.0.2c does not properly

CVE-2022-3602 HIGH
7.5 Nov 01

A buffer overrun can be triggered in X.509 certificate verification, specifically in name constraint checking. Rated hig

CVE-2014-3470 MEDIUM
4.3 Jun 05

The ssl3_send_client_key_exchange function in s3_clnt.c in OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before

CVE-2017-3730 HIGH POC
7.5 May 04

In OpenSSL 1.1.0 before 1.1.0d, if a malicious server supplies bad parameters for a DHE or ECDHE key exchange then this

Share

CVE-2026-15981 vulnerability details – vuln.today

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