Podatność w serwerze plików goshs (SimpleHTTPServer napisany w Go) umożliwia nieuwierzytelnionemu atakującemu wykonywanie operacji modyfikujących stan serwera w katalogach chronionych mechanizmem .goshs ACL/basic-auth. Jest to krytyczna luka pozwalająca na całkowite ominięcie kontroli dostępu, wpływająca na poufność, integralność i dostępność danych.
▸ Pokaż oryginał (EN)
goshs is a SimpleHTTPServer written in Go. Prior to 2.0.0-beta.4, goshs enforces the documented per-folder .goshs ACL/basic-auth mechanism for directory listings and file reads, but it does not enforce the same authorization checks for state-changing routes. An unauthenticated attacker can upload files with PUT, upload files with multipart POST /upload, create directories with ?mkdir, and delete files with ?delete inside a .goshs-protected directory. By deleting the .goshs file itself, the attacker can remove the folder's auth policy and then access previously protected content without credentials. This results in a critical authorization bypass affecting confidentiality, integrity, and availability. This vulnerability is fixed in 2.0.0-beta.4.
Goshs wymusza autoryzację opartą na plikach .goshs dla operacji listowania katalogów i odczytu plików, jednak nie stosuje tych samych mechanizmów kontroli dostępu dla tras zmieniających stan serwera. Nieuwierzytelniony atakujący może przesyłać pliki metodą PUT lub multipart POST /upload, tworzyć katalogi poprzez parametr ?mkdir oraz usuwać pliki za pomocą ?delete — nawet wewnątrz katalogów chronionych przez .goshs. Co więcej, atakujący może usunąć sam plik .goshs, tym samym likwidując politykę autoryzacji dla danego folderu i uzyskując następnie dostęp do wcześniej chronionych treści bez żadnych poświadczeń.
Atakujący może bez uwierzytelnienia odczytać, modyfikować, usuwać pliki oraz tworzyć katalogi w chronionych lokalizacjach, a także trwale usunąć politykę dostępu, co prowadzi do naruszenia poufności, integralności i dostępności zasobów serwera.
Należy zaktualizować goshs do wersji 2.0.0-beta.4 lub nowszej, w której podatność została naprawiona. Patch dostępny jest w repozytorium producenta oraz w wydaniu oznaczonym jako v2.0.0-beta.4.
Goshs w wersjach wcześniejszych niż 2.0.0-beta.4
Podatność zgłoszona i naprawiona w ramach GitHub Security Advisory GHSA-wvhv-qcqf-f3cx. Fix wprowadzony commitem f212c4f4a126556bab008f79758e21a839ef2c0f.
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:XGoshs
APPGoshs2.0.0< 2.0.0
Powiązane podatności
Goshs: wyciek tokenu GITHUB_TOKEN przez artefakty workflow (ArtiPACKED)
Pominięcie uwierzytelnienia SFTP w serwerze goshs (auth bypass)
Path traversal w Goshs — brak sanityzacji katalogu przy uploadzie plików
Path traversal w goshs — brak sanityzacji ścieżki przy PUT upload
Path traversal w Goshs — brak return po walidacji ścieżki w deleteFile()