SGLang, środowisko uruchomieniowe do generowania multimodalnego, jest podatne na nieuwierzytelnione zdalne wykonanie kodu (RCE) gdy aktywna jest opcja --enable-custom-logit-processor. Atakujący bez żadnych uprawnień może przejąć kontrolę nad serwerem poprzez spreparowany payload deserializacji.
▸ Pokaż oryginał (EN)
SGLangs multimodal generation runtime is vulnerable to unauthenticated remote code execution when the --enable-custom-logit-processor option is enabled, as Python objects loaded via dill.loads() will be deserialized without validation.
Gdy SGLang uruchomiony jest z flagą --enable-custom-logit-processor, aplikacja deserializuje obiekty Pythona przy użyciu funkcji dill.loads() bez jakiejkolwiek walidacji ani weryfikacji danych wejściowych. Biblioteka dill pozwala na serializację i deserializację niemal dowolnych obiektów Pythona, w tym kodu wykonywalnego. Atakujący może przesłać sieciowo spreparowany, złośliwy payload, który podczas deserializacji spowoduje wykonanie dowolnego kodu w kontekście procesu SGLang.
Nieuwierzytelniony atakujący zdalnie może wykonać dowolny kod na serwerze (RCE), co prowadzi do pełnego przejęcia systemu, ujawnienia poufnych danych, modyfikacji danych lub zakłócenia dostępności usługi.
Należy zastosować patche dostępne u producenta zgodnie z referencjami. Do czasu aktualizacji nie należy uruchamiać SGLang z opcją --enable-custom-logit-processor, szczególnie w środowiskach dostępnych z niezaufanych sieci. Dostęp do endpointów SGLang powinien być ograniczony firewallem wyłącznie do zaufanych źródeł.
Lmsys SGLang — instalacje uruchomione z opcją --enable-custom-logit-processor; szczegółowe wersje wskazane w referencjach producenta
Podatność opisana w publikacji badawczej dostępnej pod adresem https://antiproof.ai/blog/three-rces-in-sglang/, gdzie omówione są trzy odrębne podatności RCE w SGLang.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HLmsys Sglang
APPLmsys0.5.10
Powiązane podatności
RCE w SGLang przez niebezpieczną deserializację pickle na gnieździe ROUTER
SGLang: path traversal umożliwiający zapis dowolnych plików bez uwierzytelnienia
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