ZeroHour

CVE-2025-25291

PoC ×2mass

Authentication Bypass in ruby-saml via XML Parser Differential (Signature Wrapping)

CVSS 4.0
9.3 critical
EPSS
21%p97
Published
()
Modified
AI analysis

ruby-saml, the widely used Ruby library for SAML single sign-on, incorrectly verifies XML digital signatures in all versions prior to 1.12.4 and prior to 1.18.0 because it relies on two XML parsers (ReXML and Nokogiri) that can build entirely different document structures from the same XML input. This parser differential enables a Signature Wrapping attack: an attacker can inject crafted, partially unsigned content into a legitimately signed SAML response so the library validates the signature on one part of the document while consuming attacker-controlled data from another. A successful attack results in a complete authentication bypass, letting the attacker sign in as any victim user without credentials. Any Ruby application using ruby-saml for SAML SSO is affected, directly or via downstream integrations such as OmniAuth SAML, OneLogin's Ruby tooling, GitLab CE/EE and NetApp StorageGRID SSO. Exploitation in the wild is not confirmed, but public proof-of-concept research from GitHub and PortSwigger exists and EPSS places the flaw in the top percentiles of near-term exploit likelihood (~20% in 30 days).

What to do: Upgrade ruby-saml to 1.18.0, or to 1.12.4 if pinned to the 1.12 branch, and redeploy affected applications; downstream users should apply patched releases of OmniAuth SAML, GitLab CE/EE and NetApp StorageGRID as vendors publish them. Until patched, review SAML SSO sign-in logs for unexpected or anomalous authentications and check for duplicate/reused assertion IDs in SAML responses, since any SAML-protected account is potentially bypassable without valid credentials.

Affected
onelogin ruby-samlall versions prior to 1.12.4 and prior to 1.18.0; fixed in 1.12.4 and 1.18.0
omniauth-saml (OmniAuth SAML strategy)affected when built on vulnerable ruby-saml (prior to 1.12.4/1.18.0); fixed downstream versions not stated in this data
netapp StorageGRID
Estimated exposure
mass≈1M+ users across Ruby-based SAML SSO deployments (estimate; ruby-saml is the de facto SAML library in the Ruby ecosystem, embedded in GitLab,… — ruby-saml underpins SAML SSO across the Ruby ecosystem and is embedded in widely deployed platforms — GitLab patched it in CE/EE, OmniAuth SAML and OneLogin tooling depend on it, and NetApp StorageGRID uses it for SSO — so the aggregate…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

ruby-saml provides security assertion markup language (SAML) single sign-on (SSO) for Ruby. An authentication bypass vulnerability was found in ruby-saml prior to versions 1.12.4 and 1.18.0 due to a parser differential. ReXML and Nokogiri parse XML differently; the parsers can generate entirely different document structures from the same XML input. That allows an attacker to be able to execute a Signature Wrapping attack. This issue may lead to authentication bypass. Versions 1.12.4 and 1.18.0 fix the issue.

Vendors
omniauthoneloginnetapp
Products
omniauth saml, ruby-saml, storagegrid
Weakness
CWE-347, CWE-436
Vector
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

In the news