Soft Serve (wersje 0.6.0–0.11.3) zawiera podatność typu SSRF (Server-Side Request Forgery), która pozwala uwierzytelnionemu użytkownikowi SSH zmusić serwer do wykonywania żądań HTTP do wewnętrznych lub prywatnych adresów IP. Podatność jest krytyczna, ponieważ umożliwia odczyt danych z usług niedostępnych publicznie.
▸ Pokaż oryginał (EN)
Soft Serve is a self-hostable Git server for the command line. From version 0.6.0 to before version 0.11.4, an authenticated SSH user can force the server to make HTTP requests to internal/private IP addresses by running repo import with a crafted --lfs-endpoint URL. The initial batch request is blind (the response from a metadata endpoint won't parse as valid LFS JSON), but an attacker hosting a fake LFS server can chain this into full read access to internal services by returning download URLs that point at internal targets. This issue has been patched in version 0.11.4.
Atakujący korzysta z polecenia importu repozytorium z odpowiednio spreparowanym parametrem --lfs-endpoint wskazującym na kontrolowany przez niego fałszywy serwer LFS. W pierwszym kroku serwer Soft Serve wysyła ślepe żądanie batch do podanego endpointu (odpowiedź nie jest parsowana jako prawidłowy JSON LFS). Następnie fałszywy serwer LFS zwraca odpowiedź zawierającą adresy URL pobierania wskazujące na wewnętrzne zasoby sieciowe, a Soft Serve wykonuje kolejne żądania HTTP już do tych wewnętrznych celów. W ten sposób atakujący uzyskuje pełny odczyt odpowiedzi z usług wewnętrznych.
Atakujący może uzyskać dostęp do odczytu danych z wewnętrznych usług i zasobów sieciowych niedostępnych z zewnątrz (np. metadanych chmury, wewnętrznych API, baz danych). Podatność umożliwia również ujawnienie poufnych informacji z infrastruktury hostującej serwer.
Należy zaktualizować Soft Serve do wersji 0.11.4, w której podatność została załatana. Patch dostępny jest w oficjalnym repozytorium GitHub projektu charmbracelet/soft-serve.
Soft Serve (Charm) w wersjach od 0.6.0 do 0.11.3 włącznie. Wymagane jest posiadanie konta SSH z dostępem do serwera.
Podatność wymaga uwierzytelnienia (PR:L), jednak wektor sieciowy (AV:N) i brak wymagań po stronie użytkownika (UI:N) oraz zmieniony zakres (S:C) uzasadniają ocenę CVSS 9.1. Fix dostępny w commicie 3ef660098ab37a7950457da8ecc25b516e37ce4e.
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:L/A:LCharm Soft Serve
APPCharm0.6.0 – 0.11.4 (bez)
Powiązane podatności
SSRF w Soft Serve — webhooks bez walidacji URL umożliwiają dostęp do sieci wewnętrznej
Soft Serve is a self-hostable Git server for the command line. From version 0.6.0 to before version 0.11.6, an...
Soft Serve is a self-hostable Git server for the command line. Versions 0.11.2 and below have a critical authe...
Soft Serve is a self-hostable Git server for the command line. Prior to version 0.6.2, a security vulnerabilit...
Soft Serve is a self-hostable Git server for the command line. Prior to version 0.11.2, an authorization bypas...