SGLang, środowisko uruchomieniowe do multimodalnego generowania, zawiera podatność path traversal dostępną bez uwierzytelnienia. Atakujący może zapisywać dowolne pliki w dowolnym miejscu dostępnym dla procesu serwera, co stwarza poważne ryzyko naruszenia integralności systemu.
▸ Pokaż oryginał (EN)
SGLangs multimodal generation runtime is vulnerable to an unauthenticated path traversal vulnerability, allowing an attacker to write arbitrary files anywhere the server process has write access, by including ../ sequences in the upload filename when sent to specific endpoints.
Podatność wynika z braku właściwej sanityzacji nazwy pliku przesyłanego przez użytkownika do określonych endpoint-ów serwera. Atakujący umieszcza sekwencje '../' w nazwie przesyłanego pliku, co pozwala na wyjście poza zamierzony katalog docelowy. W rezultacie plik może zostać zapisany w dowolnej lokalizacji systemu plików, do której proces serwera posiada uprawnienia zapisu — bez konieczności posiadania jakiegokolwiek uwierzytelnienia.
Atakujący może zapisać dowolne pliki w nieautoryzowanych lokalizacjach serwera, co umożliwia nadpisanie krytycznych plików konfiguracyjnych, wdrożenie złośliwego kodu lub zdestabilizowanie działania systemu. Podatność bezpośrednio zagraża integralności i dostępności serwera.
Należy zastosować patche dostępne u producenta zgodnie z referencjami. Jako tymczasowe obejście zaleca się ograniczenie dostępu sieciowego do endpoint-ów SGLang wyłącznie do zaufanych hostów oraz uruchomienie procesu serwera z minimalnymi uprawnieniami do zapisu w systemie plików.
Lmsys SGLang — wersje wskazane w referencjach producenta
Podatność opisana w analizie technicznej opublikowanej przez antiproof.ai, która dotyczy trzech różnych podatności RCE/zapisu plików w SGLang (referencja: https://antiproof.ai/blog/three-rces-in-sglang/).
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:HLmsys Sglang
APPLmsys0.5.10
Powiązane podatności
RCE w SGLang przez niebezpieczną deserializację pickle na gnieździe ROUTER
RCE przez niebezpieczną deserializację w SGLang (dill.loads)
SGLang: RCE przez niezabezpieczony silnik Jinja2 w endpoincie reranking
RCE w SGLang przez deserializację pickle bez uwierzytelnienia (ZMQ broker)
SGLang: nieuwierzytelnione RCE przez deserializację pickle w module disaggregation