Krytyczna luka CVSS 10.0 w GitLab. Pojawiły się pierwsze próby ataków po ujawnieniu CVE-2026-85706 - Security Bez Tabu

Krytyczna luka CVSS 10.0 w GitLab. Pojawiły się pierwsze próby ataków po ujawnieniu CVE-2026-85706

Cybersecurity news

Wprowadzenie do problemu / definicja

GitLab opublikował poprawki bezpieczeństwa usuwające kilka istotnych podatności, w tym krytyczną lukę CVE-2026-85706 o maksymalnej ocenie CVSS 10.0. Problem dotyczy mechanizmu odczytu plików przez API powiązane z commitami repozytorium i w określonych warunkach może umożliwić nieautoryzowany odczyt dowolnych plików z serwera GitLab.

Z punktu widzenia bezpieczeństwa to wyjątkowo groźny scenariusz, ponieważ GitLab przechowuje nie tylko kod źródłowy, ale również sekrety CI/CD, tokeny, konfiguracje integracji oraz dane o wysokiej wartości operacyjnej dla organizacji.

W skrócie

  • CVE-2026-85706 została oceniona na CVSS 10.0.
  • Podatność łączy path traversal z niewystarczającą kontrolą dostępu w API repozytorium.
  • W określonych konfiguracjach atak może zostać przeprowadzony zdalnie i bez uwierzytelnienia.
  • Próby sondowania podatnych instancji pojawiły się krótko po ujawnieniu problemu.
  • Administratorzy powinni jak najszybciej wdrożyć poprawione wersje GitLab.

Kontekst / historia

Podatność wpisuje się w rosnące zagrożenie dla platform DevSecOps oraz systemów zarządzania kodem źródłowym. GitLab pozostaje atrakcyjnym celem dla napastników, ponieważ przejęcie lub nawet częściowa kompromitacja takiej platformy może prowadzić do dalszego naruszenia łańcucha dostaw oprogramowania.

Zgodnie z opublikowanymi informacjami poprawki dla CVE-2026-85706 udostępniono dla gałęzi 19.1, 19.2 i 19.3. Problem dotyczy wersji od 18.7 przed 19.1.8, od 19.2 przed 19.2.6 oraz od 19.3 przed 19.3.2. Oznacza to, że wiele instancji self-managed mogło pozostawać narażonych do czasu wdrożenia aktualizacji, zwłaszcza jeśli były dostępne z internetu i obsługiwały publiczne projekty.

W tym samym cyklu poprawek GitLab zaadresował również inną krytyczną podatność, CVE-2026-87719, dotyczącą niebezpiecznej deserializacji w GitLab EE. To pokazuje, że aktualizacje bezpieczeństwa tej platformy powinny być traktowane priorytetowo przez zespoły administracyjne i bezpieczeństwa.

Analiza techniczna

CVE-2026-85706 została opisana jako połączenie niewłaściwego ograniczenia ścieżek i braku skutecznego egzekwowania uwierzytelnienia w API commitów repozytorium. W praktyce oznacza to możliwość wykorzystania parametru ścieżki pliku do wyjścia poza oczekiwany kontekst aplikacji i odczytu zasobów znajdujących się na serwerze GitLab.

Mechanizm przypomina klasyczny path traversal. Jeśli aplikacja przyjmuje dane wejściowe definiujące ścieżkę do pliku, ale nie zapewnia pełnej kanonizacji i ścisłego ograniczenia do bezpiecznego katalogu bazowego, napastnik może próbować uzyskać dostęp do plików systemowych lub aplikacyjnych spoza dozwolonego obszaru.

W środowisku GitLab potencjalnie zagrożone mogą być nie tylko logi, ale także pliki konfiguracyjne, artefakty zawierające dane uwierzytelniające, tokeny, sekrety integracyjne oraz informacje przydatne do dalszej eskalacji. Nawet jeśli pojedynczy odczyt nie prowadzi od razu do pełnego przejęcia instancji, może stanowić istotny etap rekonesansu przed kolejnymi działaniami.

W materiałach dotyczących podatności wskazano również obszar, który warto monitorować pod kątem prób wykorzystania luki: żądania HTTP POST kierowane do ścieżek podobnych do /api/v4/projects/{id}/repository/commits/, zawierające parametr file.Path. To ważna wskazówka dla SOC, administratorów i zespołów reagowania na incydenty.

Konsekwencje / ryzyko

Ryzyko związane z tą podatnością jest bardzo wysokie. Luka może być wykorzystywana zdalnie, w określonych scenariuszach bez uwierzytelnienia, a dodatkowo dotyczy systemu centralnego dla procesu wytwarzania oprogramowania.

Najbardziej bezpośrednią konsekwencją jest nieautoryzowany odczyt wrażliwych plików z serwera. W praktyce może to doprowadzić do ujawnienia:

  • tokenów dostępowych i sekretów CI/CD,
  • danych konfiguracyjnych usług zewnętrznych,
  • poświadczeń do baz danych lub środowisk chmurowych,
  • informacji o architekturze środowiska,
  • logów i danych pomocnych w dalszej eksploatacji.

W szerszej perspektywie zagrożona jest również integralność łańcucha dostaw oprogramowania. Jeżeli napastnik wykorzysta odczytane dane do zdobycia dalszego dostępu, może przejść od rekonesansu do sabotażu, nadużycia poświadczeń lub manipulacji pipeline’ami. To z kolei może prowadzić do kompromitacji środowisk developerskich i produkcyjnych.

Dodatkowym czynnikiem ryzyka jest szybkie pojawienie się pierwszych prób skanowania po publikacji informacji o luce. Oznacza to, że okno reakcji obronnej jest krótkie, a publicznie wystawione, niezaktualizowane instancje mogą zostać szybko wykryte przez zautomatyzowane narzędzia atakujących.

Rekomendacje

Organizacje korzystające z GitLab Self-Managed powinny niezwłocznie zweryfikować wersję środowiska i wdrożyć aktualizację do jednej z wersji naprawczych: 19.1.8, 19.2.6 lub 19.3.2, zależnie od używanej gałęzi utrzymaniowej.

Warto podjąć następujące działania operacyjne:

  • zaktualizować GitLab do wersji zawierającej poprawkę,
  • ograniczyć ekspozycję instancji do zaufanych adresów IP lub sieci VPN,
  • tymczasowo ograniczyć dostęp do publicznych projektów, jeśli to możliwe,
  • przeanalizować logi HTTP i logi aplikacyjne pod kątem nietypowych żądań do endpointów API commitów,
  • wdrożyć reguły detekcyjne dla podejrzanych parametrów ścieżek,
  • przeprowadzić przegląd sekretów i rozważyć rotację poświadczeń w przypadku podejrzenia kompromitacji.

Z perspektywy obrony warstwowej warto również objąć GitLab ścisłym monitoringiem, segmentować komponenty infrastruktury, ograniczać liczbę publicznych projektów oraz regularnie testować procedury reagowania na incydenty związane z platformą DevOps.

Jeśli w logach zostaną wykryte ślady eksploatacji, incydent należy traktować jako potencjalne naruszenie wysokiej wagi. Sama aktualizacja po fakcie może nie wystarczyć — konieczna może być analiza powłamaniowa, weryfikacja integralności pipeline’ów i kontrola tokenów uprzywilejowanych.

Podsumowanie

CVE-2026-85706 to krytyczna podatność w GitLab, która łączy path traversal z błędem kontroli dostępu i może umożliwiać nieautoryzowany odczyt plików z serwera. Ze względu na centralną rolę GitLab w procesie wytwarzania oprogramowania skutki potencjalnej eksploatacji mogą wykraczać daleko poza sam wyciek danych.

Najważniejsze działania to szybkie wdrożenie aktualizacji, ograniczenie publicznej ekspozycji instancji oraz aktywne poszukiwanie śladów prób wykorzystania luki. W tym przypadku czas reakcji administratora ma bezpośredni wpływ na poziom ryzyka dla całej organizacji.

Źródła

  1. GitLab CVSS 10 File-Read Flaw Draws In-the-Wild Probes After Disclosure — https://thehackernews.com/2026/09/gitlab-cvss-10-file-read-flaw-draws-in.html
  2. GitLab 19 upgrade notes — https://docs.gitlab.com/update/versions/gitlab_19_changes/
  3. CVE Numbering Authority — https://about.gitlab.com/security/cve/
  4. Coordinated Disclosure Process — https://about.gitlab.com/security/disclosure/