CVE-2026-52812
WysokieCVSS 7.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 15 — wyżej niż 15% wszystkich znanych CVE
Streszczenie
W Gogs przed wersją 0.14.3, mechanizm przechowywania plików LFS używa wyłącznie identyfikatora OID do adresowania treści, ale autoryzacja dostępu do repozytorium jest sprawdzana na podstawie pary (repo_id, oid). Funkcja serveUpload pomija ponowne przesyłanie pliku, jeśli plik o danym OID już istnieje na dysku, i dodaje nowy rekord (repo_id, oid) wskazujący na ten plik bez weryfikacji, czy treść żądania faktycznie odpowiada deklarowanemu OID. Użytkownik z prawem zapisu do jednego repozytorium może powiązać swoje repozytorium z plikiem OID należącym do prywatnego repozytorium i pobrać oryginalne dane przez własny punkt końcowy.
Ocena ryzyka
Ryzyko polega na nieautoryzowanym dostępie do prywatnych plików LFS w innych repozytoriach, co może prowadzić do wycieku poufnych danych przechowywanych w repozytoriach Gogs.
Rekomendacja
Należy niezwłocznie zaktualizować Gogs do wersji 0.14.3 lub nowszej, która zawiera poprawkę usuwającą tę podatność.
Oryginalny opis (angielski, źródło NVD)
Gogs is an open source self-hosted Git service. Prior to 0.14.3, Git LFS storage is content-addressed by OID alone (<LFS-root>/<oid[0]>/<oid[1]>/<oid>) but per-repo authorization lives in the lfs_object table keyed (repo_id, oid). serveUpload skips re-uploading when the OID file already exists on disk and inserts a new (repo_id, oid) row pointing at it without verifying the request body hashes to the OID being claimed. Any user with write access to one repo can bind their repo to an OID owned by a private repo and download the original bytes via their own download endpoint. This vulnerability is fixed in 0.14.3.

