CISA nakazuje pilne łatanie luki RCE w Gogs (CVE-2025-8110) wykorzystywanej jako 0-day - Security Bez Tabu

CISA nakazuje pilne łatanie luki RCE w Gogs (CVE-2025-8110) wykorzystywanej jako 0-day

Wprowadzenie do problemu / definicja luki

Gogs (lekka, self-hostowana usługa Git napisana w Go) znalazła się na celowniku po potwierdzeniu aktywnego wykorzystywania podatności CVE-2025-8110 prowadzącej do zdalnego wykonania kodu (RCE) na serwerach wystawionych do Internetu. CISA nakazała amerykańskim agencjom federalnym wdrożenie poprawek/mitigacji w trybie pilnym — w praktyce to sygnał, że ryzyko jest „tu i teraz”, a nie teoretyczne.


W skrócie

  • CVE-2025-8110 (CVSS v4: 8.7 / High) dotyczy obsługi dowiązań symbolicznych (symlinków) w API zapisu plików PutContents i umożliwia zapis poza repozytorium.
  • Atak wymaga zwykle niskich uprawnień (np. konta użytkownika), ale w praktyce wiele instancji ma włączone Open Registration, co mocno obniża barierę wejścia.
  • Wiz raportował ponad 700 oznak skompromitowanych instancji i ponad 1400 publicznie dostępnych serwerów Gogs podczas analizy kampanii.
  • CISA wyznaczyła termin dla FCEB na 2 lutego 2026 (w ciągu 3 tygodni od komunikatu).

Kontekst / historia / powiązania

CVE-2025-8110 jest opisywana jako obejście wcześniej załatanego błędu RCE CVE-2024-55947. Poprzednie zabezpieczenia miały blokować klasyczny directory traversal w ścieżkach, ale nie weryfikowały celu symlinka, co pozwoliło wrócić do scenariusza „zapis poza repozytorium → przejęcie”.

Z perspektywy obrony istotne są też informacje o falach ataków: Wiz opisał obserwacje działań już latem, a następnie kolejną falę (wg osi czasu ujawnienia) 1 listopada.


Analiza techniczna / szczegóły luki

Rdzeń problemu: PutContents API pozwala aktualizować/zapisywać pliki w repozytorium przez endpoint w stylu:

  • PUT /repos/:owner/:repo/contents/:path

Aplikacja walidowała ../ (traversal po ścieżce), ale nie walidowała docelowej ścieżki po rozwinięciu symlinków. Atakujący może więc:

  1. Utworzyć repozytorium zawierające symlink (np. do pliku konfiguracyjnego Git poza repo).
  2. Z użyciem PutContents zapisać dane „przez symlink”, co w efekcie nadpisze plik poza katalogiem repozytorium.

W praktyce opisywany wektor eskalacji do RCE to nadpisanie .git/config i wstrzyknięcie ustawienia sshCommand, które następnie może zostać użyte do uruchomienia dowolnych poleceń przy kolejnej operacji Git.

Status poprawek bywa mylący:

  • istnieją patche/commity/PR dodające „symlink-aware path validation” (walidację ścieżek po rozwinięciu dowiązań),
  • natomiast w bazie advisory GitHub nadal może widnieć informacja o braku „patched versions” jako wydań wersji (tagów) — co z perspektywy zespołów operacyjnych oznacza często: trzeba wdrożyć poprawkę z kodu źródłowego albo zastosować twarde mitigacje do czasu oficjalnego release’u.

Praktyczne konsekwencje / ryzyko

Najbardziej narażone są instancje:

  • wystawione do Internetu,
  • z włączoną otwartą rejestracją (Open Registration),
  • gdzie PutContents jest dostępne dla szerokiej grupy użytkowników.

Skutki kompromitacji mogą obejmować:

  • przejęcie serwera aplikacyjnego (RCE w kontekście procesu Gogs),
  • kradzież repozytoriów/sekretów (tokeny, klucze wdrożeniowe, konfiguracje CI/CD),
  • pivot do sieci wewnętrznej (Gogs bywa „blisko” pipeline’ów i systemów budowania).

W jednej z analiz kampanii wskazano użycie malware budowanego na Supershell (framework C2), komunikującego się m.in. z adresem 119.45.176[.]196 — to ważny IOC dla threat huntingu.


Rekomendacje operacyjne / co zrobić teraz

Poniżej podejście „assume breach” dla organizacji, które mają Gogs online.

1) Redukcja powierzchni ataku (natychmiast)

  • Wyłącz Open Registration (jeśli nie jest absolutnie konieczne).
  • Ogranicz dostęp do Gogs: VPN / allowlista IP / reverse proxy z ACL, minimum ekspozycji publicznej.
  • Jeśli możesz: czasowo zablokuj lub ogranicz operacje zapisu przez API (w tym PutContents) na brzegu (proxy/WAF) — z uwzględnieniem, że może to uderzyć w legalne integracje.

2) Remediacja (patch lub backport)

  • Jeśli masz możliwość utrzymania własnej paczki: rozważ wdrożenie poprawek z upstream (walidacja po EvalSymlinks / blokada ścieżek „uciekających” poza repo) jako hotfix do czasu oficjalnego wydania.
  • Monitoruj stan advisory i wydań; CVE obejmuje wersje ≤ 0.13.3 wg GitHub Advisory.

3) Detekcja kompromitacji (logi + artefakty)

  • W logach aplikacji/reverse proxy szukaj nietypowego użycia PutContents API (skoki wolumenu, nietypowe ścieżki, serie zapytań PUT).
  • Przeskanuj repozytoria pod kątem:
    • repo z losowymi 8-znakowymi nazwami tworzonymi w krótkim oknie czasu,
    • obecności symlinków prowadzących poza repo.
  • Sprawdź pliki .git/config pod kątem podejrzanych wpisów (zwłaszcza sshCommand) i przejrzyj, czy na serwerze nie pojawiły się dodatkowe binaria/usługi utrzymujące dostęp.

4) Reakcja po incydencie

Jeżeli instancja była publiczna i nie masz pewności, czy doszło do nadużyć:

  • potraktuj host jako potencjalnie przejęty,
  • rotuj sekrety (tokeny, klucze deploy, integracje),
  • przeprowadź izolację i analizę (EDR / forensics), zanim przywrócisz usługę do Internetu.

5) Kontekst regulacyjny (dlaczego to pilne)

CISA wymaga od FCEB wdrożenia działań do 2 lutego 2026, co zwykle koreluje z realnym ryzykiem i dostępnością działających łańcuchów ataku w „dzikiej” eksploatacji.


Różnice / porównania z innymi przypadkami (jeśli dotyczy)

Ten przypadek jest dobrym przykładem „patch bypass”:

  • wcześniejsza łatka (CVE-2024-55947) zaadresowała traversal na poziomie stringów ścieżek,
  • ale brak walidacji po rozwinięciu symlinków pozostawił furtkę, którą da się zautomatyzować w atakach masowych.

To częsty wzorzec także w innych produktach: „zapis pliku + niedoszacowanie symlinków / canonicalization” kończy się arbitrary file write, a to bardzo często jest już tylko krok od RCE.


Podsumowanie / kluczowe wnioski

  • CVE-2025-8110 to realnie wykorzystywana podatność w Gogs, umożliwiająca arbitrary file write → RCE przez symlinki i PutContents API.
  • Priorytetem jest odcięcie ekspozycji (VPN/allowlista), wyłączenie otwartej rejestracji i wdrożenie poprawek/mitigacji najszybciej jak to możliwe.
  • Dla instancji internet-facing warto równolegle uruchomić threat hunting (PutContents, losowe repo, .git/config, sshCommand, IOC od C2).

Źródła / bibliografia

  1. BleepingComputer: CISA orders feds to patch Gogs RCE flaw exploited in zero-day attacks (12 stycznia 2026). (BleepingComputer)
  2. Wiz Research: Gogs 0-Day Exploited in the Wild (CVE-2025-8110) (10 grudnia 2025). (wiz.io)
  3. NVD / NIST: wpis CVE-2025-8110 (CVSS v4 8.7 / CVSS v3.1 8.8). (NVD)
  4. GitHub Advisory Database: GHSA-mq8m-42gh-wq7r / CVE-2025-8110 (status wersji dotkniętych). (GitHub)
  5. Gogs/GitHub: PR z opisem i mechaniką poprawki (walidacja symlinków w punktach zapisu). (GitHub)