---
id: CVE-2025-66568
title: The ruby-saml library implements the client side of an SAML authorization
summary: >-
  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
  transforma…
severity: critical
cvss: 9.1
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N'
cwe:
  - CWE-347
vendor: onelogin
product: ruby-saml
affected:
  - ruby-saml < 1.18.0
patched:
  - ruby-saml 1.18.0
published: '2025-12-09'
updated: '2026-10-14'
sourceUpdated: '2026-10-14T21:10:00.183'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2025-66568'
references:
  - url: >-
      https://github.com/SAML-Toolkits/ruby-saml/commit/acac9e9cc0b9a507882c614f25d41f8b47be349a
    label: security-advisories@github.com
  - url: >-
      https://github.com/SAML-Toolkits/ruby-saml/security/advisories/GHSA-x4h9-gwv3-r4m4
    label: security-advisories@github.com
tags:
  - nvd
epss: 0.00235
epssPercentile: 0.13395
ingestedAt: '2026-10-14T21:57:04.746Z'
---

## Overview

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.

## Affected

- `ruby-saml < 1.18.0`

## Remediation

Upgrade past the affected range:

- `ruby-saml 1.18.0`
