W bibliotece ruby-saml wykryto krytyczną podatność umożliwiającą obejście uwierzytelnienia (authentication bypass) w mechanizmie SAML Single Sign-On. Atakujący bez żadnych uprawnień może przejąć tożsamość dowolnego użytkownika, w tym administratora.
▸ 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 contain a patch for the issue.
Podatność wynika z różnic w sposobie parsowania XML przez biblioteki ReXML i Nokogiri (tzw. parser differential). Obie biblioteki mogą generować zupełnie odmienne struktury dokumentu z identycznego wejściowego XML. Atakujący wykorzystuje tę rozbieżność do przeprowadzenia ataku Signature Wrapping — spreparowany dokument XML zawiera prawidłowy podpis cyfrowy dla jednej struktury, natomiast po przeparsowaniu przez drugą bibliotekę odczytywana jest zmodyfikowana treść pominięta podczas weryfikacji podpisu. W efekcie weryfikacja podpisu kończy się sukcesem dla złośliwej asercji SAML.
Atakujący może skutecznie uwierzytelnić się jako dowolny użytkownik systemu bez znajomości jego danych uwierzytelniających, co prowadzi do pełnego przejęcia kont i nieautoryzowanego dostępu do zasobów chronionych przez SAML SSO.
Należy zaktualizować ruby-saml do wersji 1.12.4 lub 1.18.0, które zawierają patch eliminujący podatność. Użytkownicy GitLab powinni zastosować aktualizację opisaną w komunikacie bezpieczeństwa GitLab 17.9.2. Biblioteki omniauth-saml zależne od ruby-saml również wymagają aktualizacji do wersji opartych na patchowanych wydaniach.
ruby-saml w wersjach wcześniejszych niż 1.12.4 i 1.18.0 oraz biblioteka omniauth-saml korzystająca z podatnych wersji ruby-saml
Podatność została opisana przez GitHub Security w artykule dotyczącym omijania SAML SSO przy użyciu parser differentials. Patch dostępny w commitach e76c5b36 oraz e9c1cdbd w repozytorium SAML-Toolkits/ruby-saml.
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
Authentication bypass w ruby-saml poprzez Signature Wrapping (SAML SSO)