U ruby-saml biblioteci otkrivene su dvije kritične ranjivosti zaobilaženja autentifikacije, potencijalno izlažući brojne web aplikacije napadima preuzimanja računa.
Istraživači sigurnosti iz GitHub Security Lab-a su identifikovali diferencijalne ranjivosti parsera (CVE-2025-25291 i CVE-2025-25292) koje utiču na ruby-saml verzije do 1.17.0, što bi moglo omogućiti napadačima da imitiraju bilo kojeg korisnika unutar pogođenih sistema.
GitHub izvještava da ranjivosti proizlaze iz ruby-saml-ove upotrebe dva različita XML parsera — REXML i Nokogiri — tokom procesa verifikacije potpisa SAML odgovora.
Ovaj pristup dvostrukog parsera stvara kritičnu sigurnosnu grešku gdje parseri različito tumače isti XML dokument, dozvoljavajući napadačima da manipulišu provjerama verifikacije.
Kritične ruby-saml ranjivosti
Nepovezanost između ove dvije operacije stvara uvjet koji se može iskoristiti. Kada provjerava valjanost SAML odgovora, biblioteka izvodi dvije kritične provjere: upoređivanje izračunatog hasa sa DigestValue i provjera SignedInfo elementa sa SignatureValue. Sažetak obe ranjivosti je dat u nastavku:
Faktori rizika | Detalji |
Pogođeni proizvodi | ruby-saml < 1.12.4 i ≥ 1.13.0, < 1.18.0; omniauth-saml < 2.2.2, < 1.10.5 |
Uticaj | Authentication bypass; Preuzimanje računa |
Preduvjeti za eksploataciju | Posjedovanje jednog važećeg potpisa kreiranog sa ključem ciljne organizacije; Može se dobiti iz tvrdnje neprivilegovanog korisnika ili javno dostupnih IdP metapodataka |
CVSS 3.1 Score | 8.8 (visoko) |
Istraživači su otkrili da napadač može izraditi maliciozni SAML odgovor koji sadrži dva različita elementa Signature – jedan vidljiv REXML-u i drugi vidljiv Nokogiriju. Kod u xml_security.rb prvi postavlja upite za elemente potpisa pomoću REXML-a:
Kasnije, ponovo postavlja upit koristeći Nokogiri:
Zbog razlika u parseru, ovi upiti mogu vratiti različite elemente iz istog dokumenta.
Napadač to iskorištava tako što osigurava da se valjani SignedInfo sa DigestValue verifikuje u odnosu na legitimni potpis, dok istovremeno ima izmišljenu tvrdnju u poređenju sa njenim izračunatim sažetkom.
Ublažavanja
Organizacije koje koriste ruby-saml trebale bi odmah ažurirati na verziju 1.18.0, koja sadrži popravke za CVE-2025-25291 i CVE-2025-25292.
Osim toga, reference na biblioteke koje koriste ruby-saml, kao što je omniauth-saml, moraju se ažurirati na verzije koje upućuju na fiksnu verziju ruby-saml.
Za programere koji implementiraju privremena ublažavanja, provjera grešaka pri raščlanjivanju Nokogiri može pomoći u sprječavanju nekih tehnika eksploatacije:
Međutim, ovo nije potpuno rješenje, a ažuriranje na fiksnu verziju ostaje preporučeni pristup.
Ranjivosti su otkrivene kroz privatnu nagradnu akciju koju je pokrenuo GitHub kako bi se procijenila sigurnost ruby-saml biblioteke. I učesnik nagradne igre za greške identifikovan kao “ahacker1” i istraživači GitHub Security Lab-a nezavisno su identifikovali probleme diferencijalne analize parsera.
Održavač ruby-saml-a, Sixto Martín, radio je s istraživačima sigurnosti na razvoju i objavljivanju popravki.
Izvor: CyberSecurityNews