---
title: "CVE-2025-25291: Ruby SAML allows a SAML authentication bypass due to DOCTYPE handling (parser differential)"
url: https://erroneo.us/security/cve/CVE-2025-25291/
description: "CVE-2025-25291 (ruby-saml (RubyGems)): ruby-saml provides security assertion markup language (SAML) single sign-on (SSO) for Ruby. An authentication bypass…"
type: vulnerability-record
section: "Security Digest"
date_published: 2025-03-12
date_modified: 2025-11-03
publisher: erroneo.us
author: erroneo.us Security Desk
cve: "CVE-2025-25291"
kev: false
cvss: 9.3
epss: 0.20965
license: All rights reserved. Quote with attribution and a link.
---

# CVE-2025-25291: Ruby SAML allows a SAML authentication bypass due to DOCTYPE handling (parser differential)

**Signal:** High exploit likelihood. EPSS ranks it in the top 5% of all CVEs for likely exploitation in the next 30 days. (Computed from CISA KEV, EPSS and CVSS; not an editorial verdict.)

## Should you act?

- Not in CISA KEV , but CISA’s SSVC assessment records a public proof-of-concept, so attack code exists.
- EPSS 21.0% , percentile 98: FIRST’s model estimates a 21.0% chance of exploitation activity in the next 30 days, higher than 98% of all scored CVEs (very high). EPSS is a probability, not a verdict.
- Remotely reachable with no login and no user interaction. If the vulnerable service is exposed to the internet, prioritize it.
- Only applies if your dependency tree includes ruby-saml (RubyGems) < 1.12.4, fixed in 1.12.4 ; ruby-saml (RubyGems) >= 1.13.0, < 1.18.0, fixed in 1.18.0 . Check your lockfile, including transitive dependencies.

## What it is

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.

## Affected packages

- RubyGems `ruby-saml` < 1.12.4 → fixed: 1.12.4
- RubyGems `ruby-saml` >= 1.13.0, < 1.18.0 → fixed: 1.18.0

## Affected products (CVE record)

- SAML-Toolkits ruby-saml: < 1.12.4, >= 1.13.0, < 1.18.0

## Severity

- GitHub_M CVSS 4.0: 9.3 `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`
- GitHub CVSS 4.0: 9.3 `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`

## Exploitation

- CISA KEV: not listed (no confirmed in-the-wild exploitation known to CISA).
- CISA SSVC assessment: exploitation poc , automatable yes , technical impact total .
- FIRST EPSS (model of 2026-10-21): 20.96% probability of exploitation activity in the next 30 days; percentile 98.

## Sources

- [GitHub Advisory GHSA-4vc4-m8qh-g8jm](https://github.com/advisories/GHSA-4vc4-m8qh-g8jm)
- [CVE.org record CVE-2025-25291](https://www.cve.org/CVERecord?id=CVE-2025-25291)
- [NVD entry CVE-2025-25291](https://nvd.nist.gov/vuln/detail/CVE-2025-25291)
- [github.com](https://github.com/SAML-Toolkits/ruby-saml/security/advisories/GHSA-4vc4-m8qh-g8jm)
- [github.com](https://github.com/omniauth/omniauth-saml/security/advisories/GHSA-hw46-3hmr-x9xv)
- [github.com](https://github.com/SAML-Toolkits/ruby-saml/commit/e76c5b36bac40aedbf1ba7ffaaf495be63328cd9)
- [github.com](https://github.com/SAML-Toolkits/ruby-saml/commit/e9c1cdbd0f9afa467b585de279db0cbd0fb8ae97)
- [about.gitlab.com](https://about.gitlab.com/releases/2025/03/12/patch-release-gitlab-17-9-2-released)
- [github.blog](https://github.blog/security/sign-in-as-anyone-bypassing-saml-sso-authentication-with-parser-differentials)
- [github.com](https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.12.4)
- [github.com](https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.18.0)
- [portswigger.net](https://portswigger.net/research/saml-roulette-the-hacker-always-wins)
- [securitylab.github.com](https://securitylab.github.com/advisories/GHSL-2024-329_GHSL-2024-330_ruby-saml)
- [security.netapp.com](https://security.netapp.com/advisory/ntap-20250314-0010/)
- [news.ycombinator.com](https://news.ycombinator.com/item?id=43374519)
- [lists.debian.org](https://lists.debian.org/debian-lts-announce/2025/04/msg00011.html)
- [github.com](https://github.com/rubysec/ruby-advisory-db/blob/master/gems/ruby-saml/CVE-2025-25291.yml)

---
Source page: https://erroneo.us/security/cve/CVE-2025-25291/ · Security Digest: https://erroneo.us/security/ · More: https://erroneo.us/llms.txt
