Biblioteka ruby-saml w wersjach przed 1.12.4 i 1.18.0 zawiera krytyczną podatność umożliwiającą ominięcie uwierzytelnienia SAML SSO. Atakujący może podszyć się pod dowolnego użytkownika bez znajomości jego poświadczeń.
▸ Pokaż oryginał (EN)
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.
Podatność wynika z różnic w sposobie parsowania XML przez dwie biblioteki: ReXML i Nokogiri. Te same dane wejściowe XML mogą być interpretowane przez obie biblioteki jako zupełnie różne struktury dokumentu. Atakujący wykorzystuje tę rozbieżność do przeprowadzenia ataku Signature Wrapping — techniki polegającej na manipulacji strukturą odpowiedzi SAML w taki sposób, że podpis cyfrowy jest weryfikowany dla innego fragmentu dokumentu niż ten, który faktycznie jest przetwarzany. W efekcie złośliwa odpowiedź SAML przechodzi weryfikację podpisu mimo że zawiera sfałszowane dane tożsamości.
Atakujący nieposiadający żadnych uprawnień może uwierzytelnić się jako dowolny użytkownik, w tym administrator, omijając całkowicie mechanizm weryfikacji podpisu SAML SSO. Skutkuje to pełnym przejęciem kont i nieautoryzowanym dostępem do chronionych zasobów.
Należy zaktualizować ruby-saml do wersji 1.12.4 lub 1.18.0, które eliminują podatność. W przypadku omniauth-saml oraz NetApp StorageGRID należy zastosować patche dostępne u producenta zgodnie z referencjami. Jako obejście tymczasowe warto rozważyć wymuszenie jednolitego parsera XML w całym łańcuchu przetwarzania SAML.
Biblioteka ruby-saml w wersjach wcześniejszych niż 1.12.4 oraz wcześniejszych niż 1.18.0. Podatność dotyczy również produktów korzystających z tej biblioteki, w tym omniauth-saml oraz NetApp StorageGRID.
Poprawka została wydana 12 marca 2025 r. wraz z patchem GitLab 17.9.2. Mechanizm ataku został szczegółowo opisany przez GitHub Security w publikacji 'Sign in as anyone: bypassing SAML SSO authentication with parser differentials'.
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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:XNetapp Storagegrid
APPNetappwszystkie wersjeOmniauth Saml
APPOmniauth< 1.10.62.0.0 – 2.1.3 (bez)2.2.0 – 2.2.3 (bez)Onelogin Ruby Saml
APPOnelogin< 1.12.41.13.0 – 1.18.0 (bez)
Powiązane podatności
A crafted request uri-path can cause mod_proxy to forward the request to an origin server choosen by the remot...
Unspecified vulnerability in Oracle Java SE 6u113, 7u99, and 8u77; Java SE Embedded 8u77; and JRockit R28.3.9 ...
Auth Bypass w ruby-saml przez atak Signature Wrapping (CVE-2025-66567)
Authentication bypass w ruby-saml poprzez atak Signature Wrapping
Pominięcie uwierzytelnienia SAML SSO przez atak Signature Wrapping w ruby-saml