CVE-2025-66568
CriticalCVSS 9.1Exploitation Probability (EPSS)
Low risk13th percentile - higher than 13% of all known CVEs
Summary
The ruby-saml library implements the client side of a SAML authorization. Versions up to and including 1.12.4 are vulnerable to authentication bypass through the libxml2 canonicalization process used by Nokogiri for document transformation, which allows an attacker to execute a Signature Wrapping attack. When libxml2's canonicalization is invoked on an invalid XML input, it may return an empty string rather than a canonicalized node. ruby-saml then proceeds to compute the DigestValue over this empty string, treating it as if canonicalization succeeded. This issue is fixed in version 1.18.0.
Risk Assessment
An attacker can bypass SAML authentication, leading to unauthorized access to systems and data.
Recommendation
Update ruby-saml to version 1.18.0 or later, which includes the fix.
Other vulnerabilities in ruby-saml
See all- CVE-2016-5697High
Ruby-saml before version 1.3.0 allows attackers to perform XML signature wrapping attacks via unspecified vectors.
- CVE-2025-66567Critical
The ruby-saml library up to version 1.12.4 contains an authentication bypass vulnerability due to an incomplete fix for CVE-2025-25292. Differences in XML parsing between ReXML and Nokogiri allow an attacker to perform a Signature Wrapping attack. The issue is fixed in version 1.18.0.
- CVE-2024-45409Critical
The Ruby SAML library (ruby-saml) in versions <= 12.2 and 1.13.0 through 1.16.0 does not properly verify the signature of the SAML Response. An unauthenticated attacker with access to any signed SAML document (from the IdP) can forge a SAML Response/Assertion with arbitrary contents and log in as any user.
Original NVD description (English source)
The ruby-saml library implements the client side of an SAML authorization. Versions up to and including 1.12.4, are vulnerable to authentication bypass through the libxml2 canonicalization process used by Nokogiri for document transformation, which allows an attacker to execute a Signature Wrapping attack. When libxml2’s canonicalization is invoked on an invalid XML input, it may return an empty string rather than a canonicalized node. ruby-saml then proceeds to compute the DigestValue over this empty string, treating it as if canonicalization succeeded. This issue is fixed in version 1.18.0.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

