Sono stati pubblicati aggiornamenti correttivi per la piattaforma di collaborazione GitLab — 17.9.2, 17.8.5 e 17.7.7, che risolvono una vulnerabilità (CVE-2025-25291, CVE-2025-25292) che consente di aggirare l'autenticazione basata su SAML (Security Assertion Markup Language). La vulnerabilità è presente nella libreria Ruby ruby-saml, che implementa funzionalità per l'autenticazione SAML. Oltre a GitLab, la vulnerabilità interessa anche altri progetti che utilizzano questa libreria. Il problema è stato risolto negli aggiornamenti ruby-saml 1.18.0 e 1.12.4.
La vulnerabilità è causata da differenze nell'analisi dei documenti XML tra i parser ReXML e Nokogiri, il che porta a generare documenti con strutture diverse quando si elabora lo stesso documento XML. Il problema è che REXML e Nokogiri gestiscono diversamente le firme digitali nei documenti XML, il che può essere sfruttato per creare condizioni in cui viene utilizzata una firma per la verifica e un'altra per l'autenticazione dell'utente. Questa possibilità consente a un attaccante di sfruttare un attacco XSW (XML Signature Wrapping) per falsificare una risposta SAML per contenuti arbitrari, avendo accesso a qualsiasi documento SAML firmato.
Il problema è emerso in seguito all'iniziativa di GitHub, che stava considerando la possibilità di adottare questa libreria e, per verificare la sicurezza, ha organizzato un concorso (Bug bounty) per testare l'ambiente, nel quale veniva utilizzata la libreria ruby-saml per l'autenticazione SAML. Uno dei ricercatori di sicurezza ha notato la presenza di una vulnerabilità. Durante l'analisi del problema, un membro del team di GitHub ha identificato un ulteriore vettore di attacco basato sullo stesso principio.
Successivamente, la possibilità di attacco è stata confermata anche per GitLab. Nel contesto di GitLab, la vulnerabilità consente a un attaccante che ha accesso a qualsiasi documento SAML correttamente firmato di autenticarsi come un altro utente, cioè, per bypassare l'autenticazione e accedere come un altro utente, l'attaccante deve già avere accesso a uno degli account lavorativi.
Fonte: opennet.ru
