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 contain a patch for the issue.
The vulnerability results from differences in XML parsing methods between ReXML and Nokogiri libraries (so-called parser differential). Both libraries can generate completely different document structures from identical input XML. An attacker exploits this discrepancy to perform a Signature Wrapping attack — a prepared XML document contains a valid digital signature for one structure, but when reparsed by the other library, modified content is read that was omitted during signature verification. As a result, signature verification succeeds for the malicious SAML assertion.
An attacker can effectively authenticate as any user in the system without knowledge of their credentials, leading to complete account takeover and unauthorized access to resources protected by SAML SSO.
Update ruby-saml to version 1.12.4 or 1.18.0, which contain patches eliminating the vulnerability. GitLab users should apply the update described in GitLab security advisory 17.9.2. The omniauth-saml libraries dependent on ruby-saml also require updates to versions based on patched releases.
ruby-saml in versions prior to 1.12.4 and 1.18.0, and the omniauth-saml library using vulnerable versions of ruby-saml
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:XNetapp Storagegrid
APPNetappall versionsOmniauth Saml
APPOmniauth< 1.10.62.0.0 – 2.1.3 (excl.)2.2.0 – 2.2.3 (excl.)Onelogin Ruby Saml
APPOnelogin< 1.12.41.13.0 – 1.18.0 (excl.)
Related vulnerabilities
SSRF w mod_proxy Apache HTTP Server — przekierowanie żądań przez atakującego
Krytyczna podatność RCE w Oracle Java SE i JRockit — komponent JMX
Auth Bypass w ruby-saml przez atak Signature Wrapping (CVE-2025-66567)
Authentication bypass w ruby-saml poprzez atak Signature Wrapping
Authentication bypass w ruby-saml poprzez Signature Wrapping (SAML SSO)