Kritična ranjivost zaobilaženja SAML autentifikacije u GitLabu

Dana 17. rujna 2024., tvrtka GitLab je izdala sigurnosno upozorenje o kritičnoj ranjivosti koja je identificirana u GitLab implementaciji SAML autentifikacije, a koja potencijalno omogućava napadačima zaobilaženje autentifikacije. Ova ranjivost zahvaća Community Edition (CE) i Enterprise Edition (EE) instance koje koriste Security Assertion Markup Language (SAML) autentifikaciju putem metode jednokratne/jedinstvene prijave (engl. Single Sign-On - SSO).
Preporučuje se žurno ažuriranje ranjivih poslužitelja te pretraživanje dnevničkih zapisa za potencijalno uspješno iskorištavanje ranjivosti.

Tehnički detalji ranjivosti otklonjene ovim ažuriranjem:
  • Ranjivost CVE-2024-45409 (CVSS ocjena 10), proizlazi iz nepravilne validacije SAML tvrdnji, posebno atributa extern_uid, koji jedinstveno identificira korisnike. Kada se kreira zlonamjerni SAML odgovor, GitLab ne uspijeva provjeriti ključne elemente SAML tvrdnje, što omogućava napadaču da se predstavlja kao legitimni korisnik na ranjivom poslužitelju. Ova ranjivost je rezultat problema u OmniAuth-SAML i Ruby-SAML bibliotekama. U trenutku pisanja obavijesti ranjivost je ispravljena nadogradnjom OmniAuth-SAML na verziju 2.2.1 i Ruby-SAML na 1.17.0.
Zahvaćeni proizvodi:
Ranjivost zahvaća GitLab CE i EE verzije prije 17.3.3, 17.2.7, 17.1.8, 17.0.8 i 16.11.10 koje su konfigurirane s autentifikacijom temeljenoj na SAML-u.

Preporuke:
Preporučuje se žurno ažuriranje ranjivih GitLab CE i EE instanci na najnovije dostupne ispravljene verzije. Također se preporučuje uvođenje višefaktorske autentifikacije (engl. Multi-Factor Authentication - MFA) za sve račune te omogućavanje postavke "Do not allow SAML 2FA bypass" kako bi se napadače spriječilo da zaobiđu MFA zahtjeve. Preporučuje se i pretraživanje dnevničkih zapisa za potencijalno iskorištavanje ranjivosti, osobito za javno dostupne instance odnosno instance dostupne preko interneta.

Detekcija:
Moguće je otkriti uspješno iskorištavanje ranjivosti u datoteci dnevničkog zapisa application_json. Potrebno je pregledati atribute polja extern_uid za neuobičajene vrijednosti. Također je moguće potvrditi pronađeno iskorištavanje pregledavanjem odgovarajućeg SAML odgovora u datoteci dnevničkog zapisa auth_json, tražeći netočne ili nedostajuće informacije u attributes sekciji. 
GitLabov sigurnosni inženjerski tim pruža dvije metode detekcije koje se mogu prilagoditi za detektiranje korisnika s više jedinstvenih extern_uid kroz vrijeme ili SAML autentifikacijskih događaja s IP adrese različite od ostalih događaja identitetskog pružatelja (IdP) za istog korisnika kroz vrijeme.

Više informacija moguće je pročitati na sljedećoj poveznici:
[inicijalna objava: 20.9.2024 - 11:17]