CVE-2025-25291

CRITICALNVD 9.89.8—
EchelonGraph scoreMEDIUM confidence

This critical-severity CVE scores 9.8 under NVD CVSS v3. EPSS exploit probability: 19.5%, top 3% of all CVEs by exploit prediction. GitHub Security Advisory data not yet ingested — confidence will rise once GHSA publishes (typical lag: hours to days for open-source ecosystem CVEs; never for infrastructure-only CVEs).

Triggered by: NVD CVSS baseline
Sources: epss, nvd
Elevated
9.8EG
EchelonGraph verdictPlan a fixSerious severity, but no confirmed exploitation yet.
  • High severity, but no confirmed exploitation yet
CISA-KEV: Not listedEPSS PROB: 21%CVSS: 9.8Exploit: Elevated riskExposed services: Not assessed

A fix is available — apply it.

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.

CVSS v3
9.8
EG Score
9.8CRITICALmedium confidence
EG Risk
75
EG Risk 75/100

EG Risk is EchelonGraph's 0–100 priority score: it fuses intrinsic severity with real-world exploitation and automatability so you can rank equal-severity CVEs and fix the most dangerous first. Higher = act sooner. Distinct from the 0–10 EG Score (severity).

How it’s computed
Severity98% × 45%
Exploitation40% × 40%
Automatability100% × 15%
EPSS PROB
21%
EPSS %ILE
97th
KEV
Not listed

Published

March 12, 2025

Last Modified

November 3, 2025

Advisory Details (10)

Auto-updated Oct 9, 2026
🔬 Proof of concept available. Patch available. Sources: github_commit, github_release, github.
github

GHSL-2024-329_GHSL-2024-330: Authentication bypasses in ruby-saml - CVE-2025-25291, CVE-2025-25292 | GitHub Security Lab

https://securitylab.github.com/advisories/GHSL-2024-329_GHSL-2024-330_ruby-saml
genericMentions a patch (unverified)

SAML roulette: the hacker always wins | PortSwigger Research

https://portswigger.net/research/saml-roulette-the-hacker-always-wins
githubMentions a patch (unverified)

Signature Wrapping Attack issue on ruby-saml · Advisory · omniauth/omniauth-saml · GitHub

https://github.com/omniauth/omniauth-saml/security/advisories/GHSA-hw46-3hmr-x9xv
githubMentions a patch (unverified)

SAML authentication bypass due to DOCTYPE handling (parser differential) · Advisory · SAML-Toolkits/ruby-saml · GitHub

https://github.com/SAML-Toolkits/ruby-saml/security/advisories/GHSA-4vc4-m8qh-g8jm
github_release Patch Available

1.18.0 (Mar 12, 2025)

Patch available: SAML-Toolkits/ruby-saml v1.18.0

https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.18.0
github_release Patch Available

1.12.4 (Mar 12, 2025)

Patch available: SAML-Toolkits/ruby-saml v1.12.4

https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.12.4
github_commit Patch Available

commit e9c1cdbd0f9a (SAML-Toolkits/ruby-saml)

Patch available: SAML-Toolkits/ruby-saml v1.18.0 (contains commit e9c1cdbd0f9a)

https://github.com/SAML-Toolkits/ruby-saml/commit/e9c1cdbd0f9afa467b585de279db0cbd0fb8ae97
github_commit Patch Available

commit e76c5b36bac4 (SAML-Toolkits/ruby-saml)

Patch available: SAML-Toolkits/ruby-saml v1.12.4 (contains commit e76c5b36bac4)

https://github.com/SAML-Toolkits/ruby-saml/commit/e76c5b36bac40aedbf1ba7ffaaf495be63328cd9
generic🟡 PoC Available

Sign in as anyone: Bypassing SAML SSO authentication with parser differentials - The GitHub Blog

https://github.blog/security/sign-in-as-anyone-bypassing-saml-sso-authentication-with-parser-differentials
generic

GitLab Critical Patch Release: 17.9.2, 17.8.5, 17.7.7 | GitLab Docs

https://about.gitlab.com/releases/2025/03/12/patch-release-gitlab-17-9-2-released

Vendor Advisories for CVE-2025-25291(1)

These vendors published their own advisory mentioning this CVE — often with vendor-specific remediation steps + affected product lists not in NVD.

Patch Availability(1)

Vendor / EcosystemFix (by version range) / PatchReleasedSource
ubunturuby-saml (1.7.2-1ubuntu0.1~esm2) @ bionic2026-05-30ubuntu

Patches are aggregated from vendor advisories (Red Hat, Microsoft, Cisco, GitHub) and package ecosystems (OSV, GHSA). Multiple rows for the same upstream release have been deduplicated.

Affected Packages

(3 across 3 ecosystems)
Debian:11(1)
PackageVulnerable rangeFix by version rangeDependents
ruby-saml1.11.0-1, 1.11.0-1+deb11u1
  • every version up to 1.11.0-1+deb11u2: fixed in 1.11.0-1+deb11u2
—
Debian:12(1)
PackageVulnerable rangeFix by version rangeDependents
ruby-saml1.13.0-1, 1.13.0-1+deb12u1, 1.15.0-1, 1.17.0-1
  • every version on: no fix on record
—
RubyGems(1)
PackageVulnerable rangeFix by version rangeDependents
ruby-saml1.13.0, 1.14.0, 1.15.0, 1.16.0, 1.17.0
  • every version up to 1.12.4: fixed in 1.12.4
  • 1.13.0 up to 1.18.0: fixed in 1.18.0
—

Weakness Classification(2)

MITRE Common Weakness Enumeration — the root-cause categories this CVE belongs to.

All Vendor Advisories

(1)

Every vendor that published an advisory referencing this CVE — pulled from our cve_vendor_advisories aggregation. Click any row for the vendor's original advisory page.

Data Freshness Timeline

(refreshed 7× in last 7d / 27× in last 30d)

Each row is a source pipeline that fetched or updated this CVE on that date, with what changed. For example, "NVD update" means NVD published or revised its analysis for this CVE; "MITRE cvelistV5" means we ingested or refreshed it from the CNA feed. Most recent first.

Showing the most recent 100 of 148 total refreshes for this CVE.

  1. 2026-10-09 20:06 UTCEPSS rescore
  2. 2026-10-08 17:09 UTCEPSS rescore
  3. 2026-10-07 23:46 UTCEPSS rescore
  4. 2026-10-06 15:16 UTCEPSS rescore
  5. 2026-10-05 17:42 UTCEPSS rescore
  6. 2026-10-04 23:21 UTCEPSS rescore
  7. 2026-10-03 14:24 UTCEPSS rescore
  8. 2026-10-02 20:25 UTCOSV refresh
  9. 2026-10-02 16:26 UTCEPSS rescore
  10. 2026-10-01 19:48 UTCEPSS rescore
  11. 2026-09-30 15:02 UTCEPSS rescore
  12. 2026-09-30 15:02 UTCEPSS rescore
  13. 2026-09-26 15:58 UTCEPSS rescore
  14. 2026-09-26 15:58 UTCEPSS rescore
  15. 2026-09-26 00:24 UTCEPSS rescore
  16. 2026-09-24 14:02 UTCEPSS rescore
  17. 2026-09-23 13:46 UTCEPSS rescore
  18. 2026-09-22 14:47 UTCEPSS rescore
  19. 2026-09-18 19:27 UTCEPSS rescore
  20. 2026-09-16 14:06 UTCEPSS rescore
  21. 2026-09-16 05:13 UTCEPSS rescore
  22. 2026-09-15 03:09 UTCEPSS rescore
  23. 2026-09-13 17:54 UTCOSV refresh
  24. 2026-09-12 15:00 UTCEPSS rescore
  25. 2026-09-11 14:51 UTCEPSS rescore
Show 75 more
  1. 2026-09-11 09:35 UTCEPSS rescore
  2. 2026-09-10 09:33 UTCEPSS rescore
  3. 2026-09-08 21:59 UTCEPSS rescore
  4. 2026-09-06 13:46 UTCEPSS rescore
  5. 2026-09-06 13:46 UTCEPSS rescore
  6. 2026-09-05 15:28 UTCEPSS rescore
  7. 2026-09-04 05:05 UTCEPSS rescore
  8. 2026-09-02 14:11 UTCEPSS rescore
  9. 2026-09-01 13:52 UTCEPSS rescore
  10. 2026-09-01 04:38 UTCEPSS rescore
  11. 2026-08-30 19:16 UTCEPSS rescore
  12. 2026-08-30 01:21 UTCEPSS rescore
  13. 2026-08-28 21:40 UTCEPSS rescore
  14. 2026-08-27 14:24 UTCEPSS rescore
  15. 2026-08-25 19:10 UTCOSV refresh
  16. 2026-08-25 13:47 UTCEPSS rescore
  17. 2026-08-23 00:18 UTCEPSS rescore
  18. 2026-08-21 23:48 UTCEPSS rescore
  19. 2026-08-20 22:54 UTCEPSS rescore
  20. 2026-08-19 17:03 UTCEPSS rescore
  21. 2026-08-18 13:47 UTCEPSS rescore
  22. 2026-08-17 13:46 UTCEPSS rescore
  23. 2026-08-16 14:55 UTCEPSS rescore
  24. 2026-08-16 02:13 UTCEPSS rescore
  25. 2026-08-16 02:13 UTCEPSS rescore
  26. 2026-08-15 01:29 UTCEPSS rescore
  27. 2026-08-13 21:59 UTCEPSS rescore
  28. 2026-08-12 13:50 UTCEPSS rescore
  29. 2026-08-10 23:59 UTCEPSS rescore
  30. 2026-08-09 11:37 UTCOSV refresh
  31. 2026-08-07 16:26 UTCEPSS rescore
  32. 2026-08-06 13:46 UTCEPSS rescore
  33. 2026-08-05 19:16 UTCEPSS rescore
  34. 2026-08-04 15:09 UTCEPSS rescore
  35. 2026-08-03 10:35 UTCEPSS rescore
  36. 2026-08-02 02:25 UTCEPSS rescore
  37. 2026-08-01 04:15 UTCEPSS rescore
  38. 2026-07-30 16:27 UTCEPSS rescore
  39. 2026-07-30 01:29 UTCEPSS rescore
  40. 2026-07-28 15:35 UTCEPSS rescore
  41. 2026-07-26 14:53 UTCEPSS rescore
  42. 2026-07-25 14:17 UTCEPSS rescore
  43. 2026-07-24 14:17 UTCEPSS rescore
  44. 2026-07-24 12:11 UTCOSV refresh
  45. 2026-07-23 14:17 UTCEPSS rescore
  46. 2026-07-23 02:51 UTCEG score recompute
  47. 2026-07-22 14:07 UTCEPSS rescore
  48. 2026-07-22 14:07 UTCEPSS rescore
  49. 2026-07-21 15:24 UTCEPSS rescore
  50. 2026-07-20 17:07 UTCEPSS rescore
  51. 2026-07-19 02:28 UTCEPSS rescore
  52. 2026-07-19 02:28 UTCEPSS rescore
  53. 2026-07-18 10:03 UTCEPSS rescore
  54. 2026-07-16 17:02 UTCEPSS rescore
  55. 2026-07-15 16:57 UTCEPSS rescore
  56. 2026-07-15 16:57 UTCEPSS rescore
  57. 2026-07-15 01:59 UTCEPSS rescore
  58. 2026-07-13 22:29 UTCEPSS rescore
  59. 2026-07-13 22:29 UTCEPSS rescore
  60. 2026-07-12 05:46 UTCEPSS rescore
  61. 2026-07-12 05:46 UTCEPSS rescore
  62. 2026-07-11 08:27 UTCEPSS rescore
  63. 2026-07-11 08:26 UTCEPSS rescore
  64. 2026-07-09 19:09 UTCEPSS rescore
  65. 2026-07-08 15:14 UTCEPSS rescore
  66. 2026-07-07 13:45 UTCEPSS rescore
  67. 2026-07-07 07:51 UTCOSV refresh
  68. 2026-07-06 16:26 UTCEPSS rescore
  69. 2026-07-06 02:22 UTCEPSS rescore
  70. 2026-07-06 02:22 UTCEPSS rescore
  71. 2026-07-01 15:06 UTCEPSS rescore
  72. 2026-06-28 14:07 UTCEPSS rescore
  73. 2026-06-28 14:07 UTCEPSS rescore
  74. 2026-06-28 04:55 UTCEPSS rescore
  75. 2026-06-28 04:55 UTCEPSS rescore

Frequently asked(5)

What is CVE-2025-25291?
CVE-2025-25291 is a critical vulnerability published on March 12, 2025. 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…
When was CVE-2025-25291 disclosed?
CVE-2025-25291 was first published on March 12, 2025, with the most recent update on November 3, 2025. EchelonGraph re-ingests CVE updates from NVD on a 2-hour cycle, so this page reflects the latest published state.
Is CVE-2025-25291 actively exploited?
CVE-2025-25291 is not currently on CISA's Known Exploited Vulnerabilities catalog. FIRST EPSS estimates a 21% probability of exploitation in the next 30 days (97th percentile of EPSS-scored CVEs).
What is the CVSS score of CVE-2025-25291?
CVE-2025-25291 has a CVSS v3 base score of 9.8 (NVD).
How do I remediate CVE-2025-25291?
A fix for CVE-2025-25291 is available: update to the fixed version the vendor names in its advisory. The vendor advisories EchelonGraph has for CVE-2025-25291 are linked in the Vendor Advisories panel on this page.

Dependency Blast Radius

See which npm, PyPI, Go, and Maven packages are affected by CVE-2025-25291

Explore →

Is Your Infrastructure Affected by CVE-2025-25291?

EchelonGraph automatically scans your cloud infrastructure and maps CVE exposure using blast radius analysis.