SGLang udostępnia gniazdo ZeroMQ PULL na sieciowym interfejsie bez mechanizmów uwierzytelniania ani zabezpieczeń deserializacji, co umożliwia zdalnemu atakującemu wykonanie dowolnego kodu bez uwierzytelnienia. Podatność dotyczy podsystemu expert-parallel backup i jest krytyczna ze względu na brak jakichkolwiek barier dostępu.
▸ Pokaż oryginał (EN)
SGLang uses an expert-parallel backup subsystem that exposes a ZeroMQ PULL socket on a routable network interface that does not contain authentication or deserialization safeguards, allowing an attacker to provide a malicious pickle file that results in unauthenticated remote code execution when the feature is enabled and the service is reachable over the network.
Podsystem expert-parallel backup w SGLang otwiera gniazdo ZeroMQ typu PULL na dostępnym sieciowo interfejsie. Gniazdo to nie wymaga uwierzytelnienia ani nie weryfikuje odbieranych danych przed ich przetworzeniem. Atakujący może przesłać spreparowany plik pickle, który zostanie zdeserializowany przez aplikację. Deserializacja złośliwego obiektu pickle prowadzi do wykonania arbitralnego kodu w kontekście procesu SGLang (CWE-502: Deserialization of Untrusted Data).
Atakujący uzyskuje możliwość nieuwierzytelnionego zdalnego wykonania kodu (RCE) na serwerze z uruchomioną usługą SGLang, co może skutkować pełnym przejęciem systemu, kradzieżą danych oraz naruszeniem integralności środowiska obliczeniowego.
Należy zastosować patche dostępne u producenta zgodnie z referencjami. Do czasu wdrożenia poprawki zaleca się wyłączenie funkcji expert-parallel backup lub ograniczenie dostępu sieciowego do gniazda ZeroMQ za pomocą firewall — usługa nie powinna być dostępna z niezaufanych sieci.
SGLang z włączoną funkcją expert-parallel backup (plik python/sglang/srt/elastic_ep/expert_backup_manager.py); konkretne wersje wskazane w referencjach producenta i doradztwie CERT/CC (VULS/326070)
Podatność opisana w doradztwie CERT/CC VULS/326070. Podatny kod zlokalizowany w pliku python/sglang/srt/elastic_ep/expert_backup_manager.py w repozytorium projektu sgl-project/sglang na GitHub.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:NLmsys Sglang
APPLmsys≤ 0.5.14
Powiązane podatności
RCE przez niebezpieczną deserializację pickle w SGLang (ładowanie wag modeli)
RCE w SGLang — ucieczka z sandbox przez podsystem dumper
SGLang: nieuwierzytelnione RCE przez podatność deserializacji pickle
RCE w SGLang przez niebezpieczną deserializację pickle na gnieździe ROUTER
SGLang: path traversal umożliwiający zapis dowolnych plików bez uwierzytelnienia