Goshs, będący implementacją SimpleHTTPServer w języku Go, zawiera krytyczną podatność typu path traversal w funkcji deleteFile(). Brak instrukcji return po sprawdzeniu ścieżki pozwala atakującemu ominąć zabezpieczenie i uzyskać dostęp do plików poza dozwolonym katalogiem.
▸ Pokaż oryginał (EN)
goshs is a SimpleHTTPServer written in Go. Prior to 2.0.0-beta.3, tdeleteFile() missing return after path traversal check. This vulnerability is fixed in 2.0.0-beta.3.
Funkcja deleteFile() przeprowadza sprawdzenie ścieżki pod kątem path traversal, jednak po wykryciu nieprawidłowej ścieżki nie przerywa wykonania kodu — brakuje instrukcji return. W rezultacie dalsze przetwarzanie żądania jest kontynuowane mimo negatywnej walidacji, co umożliwia atakującemu manipulowanie ścieżką (np. za pomocą sekwencji '../') w celu wyjścia poza katalog roboczy serwera i operowania na dowolnych plikach systemu.
Atakujący zdalny, nieuwierzytelniony może odczytywać, modyfikować lub usuwać dowolne pliki dostępne dla procesu serwera, co prowadzi do naruszenia poufności, integralności i dostępności danych.
Należy zaktualizować Goshs do wersji 2.0.0-beta.3 lub nowszej, w której podatność została naprawiona. Szczegóły dostępne w repozytorium projektu oraz w poradniku bezpieczeństwa GHSA-6qcc-6q27-whp8.
Goshs (github.com/patrickhener/goshs) w wersjach poprzedzających 2.0.0-beta.3
Podatność zgłoszona i naprawiona w wersji 2.0.0-beta.3. Szczegóły opublikowano w GitHub Security Advisory GHSA-6qcc-6q27-whp8.
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HGoshs
APPGoshs2.0.0< 2.0.0
Powiązane podatności
Pominięcie uwierzytelnienia SFTP w serwerze goshs (auth bypass)
Goshs: wyciek tokenu GITHUB_TOKEN przez artefakty workflow (ArtiPACKED)
Authorization bypass w goshs — ominięcie ACL bez uwierzytelnienia
Path traversal w Goshs — brak sanityzacji katalogu przy uploadzie plików
Path traversal w goshs — brak sanityzacji ścieżki przy PUT upload