CVE-2025-25292: Ruby saml Authentication Bypass Vulnerability

CRITICAL
Advisory Identifier: GHSA-754f-8gm6-c4r2
CVSS 9.8
CWE-436 CWE-347
Published
Advisory Summary

CVE-2025-25292 is a CRITICAL (CVSS 9.8) authentication bypass vulnerability (CWE-436: Interpretation Conflict) affecting Ruby saml libraries in the RubyGems ecosystem. The issue involves ruby saml allows a saml authentication bypass due to namespace handling (parser differential). Remediation is available by upgrading affected packages to version 1.18.0, 1.12.4.

CVE-2025-25292 at a Glance

CVE Identifier CVE-2025-25292
GHSA Identifier GHSA-754f-8gm6-c4r2
Severity CRITICAL
CVSS v3.1 Base Score 9.8
CWE Classification CWE-436: Interpretation Conflict
Affected Product Ruby saml
Package Ecosystem RubyGems
Published Date
Last Updated

Security Impact

CVSS: 9.8

The security impact metrics below are parsed directly from the CVSS v3.1 vector string (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H).

Attack Vector Network (AV:N)
Attack Complexity Low (AC:L)
Privileges Required None (PR:N)
User Interaction None (UI:N)
Scope Unchanged (S:U)
Confidentiality High (C:H)
Integrity High (I:H)
Availability High (A:H)

How to Fix CVE-2025-25292

To remediate this vulnerability, upgrade all affected Ruby saml dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.

ruby-saml fixed: 1.18.0
Upgrade ruby-saml to 1.18.0
ruby-saml fixed: 1.12.4
Upgrade ruby-saml to 1.12.4
Verify Direct and Transitive Dependencies

Run the following command in your project directory to verify that all resolved dependencies use the patched release:

inspect dependencies for ruby-saml

How to Check if You Are Affected

To determine whether your application is affected by CVE-2025-25292, inspect your project dependencies for Ruby saml:

inspect dependencies for ruby-saml

Analyze the terminal output to locate any version of Ruby saml in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 1.18.0), your application is affected.

Note: Verify declared build manifests and deployed runtime container environments.

Technical Details

Vulnerability Mechanism & Technical Analysis

This vulnerability is classified under CWE-436: Interpretation Conflict, where product a handles inputs or steps differently than product b, which causes a to perform incorrect actions based on its perception of b's state. In Ruby saml, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.

Source Advisory Statement

### Summary An authentication bypass vulnerability was found in ruby-saml 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. ### Impact This issue may lead to authentication bypass.

CVE-2025-25292 Affected Ruby saml Versions

2 component(s)
Fixed Versions:
1.18.01.12.4
Product / Package Ecosystem Affected Versions Fixed Version
ruby-saml
RubyGems
≥ 1.13.0
< 1.18.0
1.18.0
ruby-saml
RubyGems
< 1.12.4
1.12.4

References

GitHub Advisory / Wiki ADVISORY
https://github.com/SAML-Toolkits/ruby-saml/security/advisories/GHSA-754f-8gm6-c4r2
GitHub Advisory / Wiki ADVISORY
https://github.com/omniauth/omniauth-saml/security/advisories/GHSA-hw46-3hmr-x9xv
NVD — CVE-2025-25292 NVD
https://nvd.nist.gov/vuln/detail/CVE-2025-25292
Security Fix Commit FIX COMMIT
https://github.com/SAML-Toolkits/ruby-saml/commit/e76c5b36bac40aedbf1ba7ffaaf495be63328cd9
Security Fix Commit FIX COMMIT
https://github.com/SAML-Toolkits/ruby-saml/commit/e9c1cdbd0f9afa467b585de279db0cbd0fb8ae97
about.gitlab.com/releases/2025/03/12... WEB
https://about.gitlab.com/releases/2025/03/12/patch-release-gitlab-17-9-2-released
Ruby saml Security Information SECURITY
https://github.blog/security/sign-in-as-anyone-bypassing-saml-sso-authentication-with-parser-differentials
Ruby saml Source Repository REPOSITORY
https://github.com/SAML-Toolkits/ruby-saml
Ruby saml Release RELEASE
https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.12.4
Ruby saml Release RELEASE
https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.18.0
Ruby saml Source Repository REPOSITORY
https://github.com/rubysec/ruby-advisory-db/blob/master/gems/ruby-saml/CVE-2025-25292.yml
lists.debian.org/debian-lts-announce... WEB
https://lists.debian.org/debian-lts-announce/2025/04/msg00011.html
news.ycombinator.com/item WEB
https://news.ycombinator.com/item?id=43374519
portswigger.net/research/saml-roule... WEB
https://portswigger.net/research/saml-roulette-the-hacker-always-wins
Ruby saml Security Information SECURITY
https://security.netapp.com/advisory/ntap-20250314-0009
GitHub Advisory / Wiki ADVISORY
https://securitylab.github.com/advisories/GHSL-2024-329_GHSL-2024-330_ruby-saml

Frequently Asked Questions

What is CVE-2025-25292?
CVE-2025-25292 is a security vulnerability in Ruby saml involving Ruby SAML allows a SAML authentication bypass due to namespace handling (parser differential) under CWE-436: Interpretation Conflict.
Which Ruby saml versions are affected?
Affected versions include releases prior to 1.18.0, 1.12.4 across affected packages: ruby-saml.
What version fixes CVE-2025-25292?
Upgrading to 1.18.0, 1.12.4 (or the latest patched release for your respective branch) resolves the vulnerability.
Is ruby-saml affected?
Yes, ruby-saml is affected in releases prior to 1.18.0, 1.12.4. Upgrade your dependency to 1.18.0, 1.12.4 or later.
What is the CVSS score of CVE-2025-25292?
CVE-2025-25292 has a CVSS v3.1 base score of 9.8 (CRITICAL) with vector string CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H.
What CWE is associated with CVE-2025-25292?
CVE-2025-25292 is classified under CWE-436: Interpretation Conflict (Product A handles inputs or steps differently than Product B, which causes A to perform incorrect actions based on its perception of B's state.).
How can I check RubyGems dependencies for CVE-2025-25292?
Run the dependency tree command: 'inspect dependencies for ruby-saml'. This command lists direct and transitive dependencies in your build configuration so you can verify if a vulnerable version is resolved.
Machine-readable OSV JSON OSV v1.5 Schema
Normalized schema output
{
  "schema_version" : "1.4.0",
  "id" : "GHSA-754f-8gm6-c4r2",
  "modified" : "2025-11-03T21:33:11Z",
  "published" : "2025-03-12T20:54:42Z",
  "aliases" : [ "CVE-2025-25292" ],
  "summary" : "Ruby SAML allows a SAML authentication bypass due to namespace handling (parser differential)",
  "details" : "### Summary\nAn authentication bypass vulnerability was found in ruby-saml due to a parser differential.\nReXML 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.\n\n### Impact\nThis issue may lead to authentication bypass.",
  "severity" : [ {
    "type" : "CVSS_V3",
    "score" : "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"
  }, {
    "type" : "CVSS_V4",
    "score" : "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"
  } ],
  "affected" : [ {
    "package" : {
      "ecosystem" : "RubyGems",
      "name" : "ruby-saml"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "1.13.0"
      }, {
        "fixed" : "1.18.0"
      } ]
    } ]
  }, {
    "package" : {
      "ecosystem" : "RubyGems",
      "name" : "ruby-saml"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "0"
      }, {
        "fixed" : "1.12.4"
      } ]
    } ]
  } ],
  "references" : [ {
    "type" : "WEB",
    "url" : "https://github.com/SAML-Toolkits/ruby-saml/security/advisories/GHSA-754f-8gm6-c4r2"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/omniauth/omniauth-saml/security/advisories/GHSA-hw46-3hmr-x9xv"
  }, {
    "type" : "ADVISORY",
    "url" : "https://nvd.nist.gov/vuln/detail/CVE-2025-25292"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/SAML-Toolkits/ruby-saml/commit/e76c5b36bac40aedbf1ba7ffaaf495be63328cd9"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/SAML-Toolkits/ruby-saml/commit/e9c1cdbd0f9afa467b585de279db0cbd0fb8ae97"
  }, {
    "type" : "WEB",
    "url" : "https://about.gitlab.com/releases/2025/03/12/patch-release-gitlab-17-9-2-released"
  }, {
    "type" : "WEB",
    "url" : "https://github.blog/security/sign-in-as-anyone-bypassing-saml-sso-authentication-with-parser-differentials"
  }, {
    "type" : "PACKAGE",
    "url" : "https://github.com/SAML-Toolkits/ruby-saml"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.12.4"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.18.0"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/rubysec/ruby-advisory-db/blob/master/gems/ruby-saml/CVE-2025-25292.yml"
  }, {
    "type" : "WEB",
    "url" : "https://lists.debian.org/debian-lts-announce/2025/04/msg00011.html"
  }, {
    "type" : "WEB",
    "url" : "https://news.ycombinator.com/item?id=43374519"
  }, {
    "type" : "WEB",
    "url" : "https://portswigger.net/research/saml-roulette-the-hacker-always-wins"
  }, {
    "type" : "WEB",
    "url" : "https://security.netapp.com/advisory/ntap-20250314-0009"
  }, {
    "type" : "ADVISORY",
    "url" : "https://securitylab.github.com/advisories/GHSL-2024-329_GHSL-2024-330_ruby-saml"
  } ],
  "database_specific" : {
    "cwe_ids" : [ "CWE-347", "CWE-436" ],
    "severity" : "CRITICAL",
    "github_reviewed" : true,
    "github_reviewed_at" : "2025-03-12T20:54:42Z",
    "nvd_published_at" : "2025-03-12T21:15:42Z"
  }
}