ruby-saml の脆弱性 CVE-2025-25291/25292 が FIX:SAML 認証プロテクション回避の可能性

GitHub Uncovers New ruby-saml Vulnerabilities Allowing Account Takeover Attacks

2025/03/13 TheHackerNews — オープンソースの ruby​​-saml ライブラリに、深刻大度の高いセキュリティ上の2つの脆弱性が発見された。これらの脆弱性の悪用に成功した攻撃者は、Security Assertion Markup Language (SAML) 認証プロテクションを回避する可能性を手にする。

SAML は、認証/承認データを当事者間で交換するために使用される、XML ベースのプロトコルであり、SSO (single sign-on) などの機能のために用いられる。この SAML により、それぞれのユーザーは、1セットの認証情報を使用して、複数のサイト/サービス/アプリなどにアクセスできるようになる。

今回のアップデートで対応されたのは、脆弱性 CVE-2025-25291 (CVSS:8.8) と、脆弱性 CVE-2025-25292 (CVSS:8.8) であり、ruby​​-saml ライブラリの以下のバージョンに影響を及ぼす。

  • < 1.12.4
  • >= 1.13.0, < 1.18.0

これらの脆弱性は、REXML と Nokogiri が、それぞれの方法で XML を解析することに起因している、その結果として、2つのパーサーが、同じ XML 入力から異なるドキュメント構造を生成してしまう。このパーサーの違いを悪用する攻撃者は、署名ラッピング攻撃を実行し、認証バイパスを達成するという。

すでに ruby-saml プロジェクトは、バージョン 1.12.4/1.18.0 をリリースし、これらの脆弱性に対処している。

2024年11月の時点で、この脆弱性を発見/報告した GitHub は、アカウント乗っ取り攻撃を実行する攻撃者に、悪用される可能性があると述べている。

GitHub Security Lab の研究者である Peter Stockli は、「攻撃の前提として、標的組織の SAML レスポンス/アサーションを検証するキーで作成された、有効な署名が必要となるが、それを所有する攻撃者であれば、SAML アサーションを自身で構築し、任意のユーザーとしてログインできる」と述べている

さらに GitHub は、「この問題は、ハッシュの検証と、署名の検証の “切断” に帰着し、パーサー差分による悪用につながる可能性がある」と指摘している。

なお、最新のバージョン 1.12.4 /1.18.0 では、圧縮された SAML レスポンス処理に存在する 脆弱性 CVE-2025-25293 (CVSS:7.7) も対処され、リモート・サービス拒否 (DoS) の問題が緩和されている。

ユーザーに対して強く推奨されるのは、最新バージョンへと速やかに更新し、潜在的な脅威から自身を保護することだ。

昨年には GitLab と ruby​​-saml が、認証バイパスにつながる可能性のある、深刻な脆弱性 CVE-2024-45409 (CVSS:10.0) に対処している。それから6ヶ月が経ち、今回の脆弱性が発表された。

このブログでも度々登場する SAML 認証バイパスの脆弱性ですが、悪用されると、アカウント乗っ取りを始め、様々な深刻なリスクを引き起こす可能性があります。ご利用のチームは、十分にご注意下さい。なお、ruby​​-saml を使用している GitLab も、CVE-2025-25291/25292 などを修正したセキュリティ・アップデートがリリースされています。よろしければ、以下の関連記事も、SAML で検索と併せて、ご参照下さい。

2025/03/12:GitLab の脆弱性 CVE-2025-25291/25292 などが FIX
2024/09/25:GitLab の脆弱性 CVE-2024-45409:セキュリティ修正
2024/10/06:Ruby-SAML/GitLab の脆弱性 CVE-2024-45409 が FIX