Gitea 1.27.1 zatvara kritični propust za čitanje datoteka

Gitea je u verziji 1.27.1 ispravila CVE-2026-59774, kritični propust sa ocenom CVSS 9,8 koji pogađa izdanja od 1.22.1 do 1.27.0. Napadač bez naloga i prava upisa mogao je, uz javno spremište i posebno pripremljen Org-mode sadržaj, da pročita svaku datoteku kojoj servisni nalog Gitee ima pristup.
Kako je funkcionisalo čitanje datoteka
Putanja napada prolazi kroz rutu POST /{owner}/{repo}/markup. Ona dozvoljava opcionu prijavu, pronalazi spremište i proverava čitalački pristup. Kod anonimnog zahteva provera prolazi za javno spremište sa uključenom jedinicom za kod, pa instance bez javnih spremišta nemaju ovu anonimnu putanju napada.
Problem se nalazio u Org-mode rendereru. Gitea 1.27.0 inicijalizovala je biblioteku go-org pozivom org.New(), ali nije zamenila njenu podrazumevanu funkciju ReadFile. U biblioteci go-org 1.9.1 ta funkcija je ioutil.ReadFile. Direktiva #+INCLUDE prihvatala je apsolutne putanje i prosleđivala ih funkciji, omogućavajući vraćanje sadržaja sa serverskog sistema datoteka.
Ispravka je uvedena kroz PR #38642 i preneta kroz PR #38645. Gitea sada prepisuje ReadFile tako da se putanja iz Org-mode direktive prikazuje kao običan sadržaj, umesto da se razrešava na serveru. Dodat je i regresioni test za prikaz include putanja.
Moguća eskalacija i obavezne provere
Propust sam po sebi nije direktno izvršavanje koda jednim zahtevom. Gitea navodi mogući lanac u kojem napadač čita app.ini, izdvaja INTERNAL_TOKEN, ubacuje Git hook preko internog loggera i aktivira ga anonimnim kloniranjem. Nezavisno objavljen dokaz takvog lanca nije pronađen.
Administratori treba odmah da pređu na 1.27.1 i pregledaju anonimne POST zahteve ka markup ruti, naročito one koji biraju Org-mode ili sadrže apsolutne putanje. U širem kontekstu, zloupotreba postojećeg poverenja u sajber napadima pomaže timovima da prepoznaju kako zloupotreba postojećeg poverenja može proširiti posledice početnog pristupa.
Ako evidencija pokazuje pristup ovoj ruti na ranjivoj verziji, nadogradnja nije dovoljna. Sve tajne čitljive servisnom nalogu treba smatrati izloženim: rotirati interni token, OAuth podatke, JWT potpisni materijal i akreditive baze podataka. Ukoliko postoje znaci pokušaja eskalacije, potrebno je proveriti i direktorijume Git hookova radi neočekivanih izvršnih datoteka.
Gitea nije prijavila zloupotrebu u praksi, a CVE-2026-59774 se 5. avgusta 2026. nije nalazio u CISA katalogu Known Exploited Vulnerabilities. Poslovni zaključak je jasan: javna spremišta povećavaju dostupnu površinu napada, pa zakrpu, pregled evidencije i rotaciju tajni posle sumnjive aktivnosti treba sprovesti kao jedinstven postupak odgovora na incident.

