Sono stati pubblicati gli aggiornamenti correttivi della piattaforma per la collaborazione nello sviluppo di 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à si trova nella libreria Ruby ruby-saml, che implementa le funzionalità per l'autenticazione SAML. Oltre a GitLab, la vulnerabilità colpisce 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 da parte dei parser ReXML e Nokogiri, con il risultato che durante l'elaborazione dello stesso documento XML venivano generati documenti diversi nella loro struttura. Il problema è che REXML e Nokogiri gestiscono le firme digitali in modo diverso nei documenti XML, il che può essere utilizzato per creare condizioni in cui, durante la verifica, viene utilizzata una firma e durante l'attestazione dell'utente un'altra. Questa possibilità consente a un aggressore di sfruttare il metodo d’attacco XSW (XML Signature Wrapping) per falsificare la risposta SAML per contenuti arbitrari, avendo accesso a qualsiasi documento SAML firmato.
Il problema è stato identificato a seguito di un'iniziativa di GitHub, che stava considerando la possibilità di passare all'utilizzo di questa libreria e, per motivi di sicurezza, ha organizzato un concorso (Bug bounty) per hackerare un ambiente di test in cui veniva utilizzata la libreria ruby-saml per l'autenticazione SAML. Uno dei ricercatori sulla sicurezza ha notato la presenza di questa vulnerabilità. Durante l'analisi del problema, un dipendente di GitHub ha scoperto un ulteriore metodo di attacco basato sullo stesso principio.
Successivamente, la possibilità di attacco è stata confermata per GitLab. Nel contesto di GitLab, la vulnerabilità consente a un aggressore, che ha accesso a qualsiasi documento SAML correttamente firmato, di autenticarsi come un altro utente, ovvero, per aggirare l'autenticazione e accedere come un altro utente, l'aggressore deve già avere accesso a uno degli account di lavoro.
Fonte: opennet.ru
