LeRobot w wersji do 0.5.1 zawiera podatność niebezpiecznej deserializacji (CWE-502) w potoku wnioskowania asynchronicznego, umożliwiającą zdalne wykonanie kodu. Nieuwierzytelniony atakujący dostępny sieciowo może przejąć kontrolę nad serwerem polityk lub klientem robota bez żadnych uprawnień.
▸ Pokaż oryginał (EN)
LeRobot through 0.5.1 contains an unsafe deserialization vulnerability in the async inference pipeline where pickle.loads() is used to deserialize data received over unauthenticated gRPC channels without TLS in the policy server and robot client components. An unauthenticated network-reachable attacker can achieve arbitrary code execution on the server or client by sending a crafted pickle payload through the SendPolicyInstructions, SendObservations, or GetActions gRPC calls.
Komponenty serwera polityk (policy server) i klienta robota (robot client) używają funkcji pickle.loads() do deserializacji danych odbieranych przez kanały gRPC, które nie są chronione uwierzytelnianiem ani szyfrowaniem TLS. Atakujący może wysłać spreparowany payload pickle za pomocą wywołań gRPC: SendPolicyInstructions, SendObservations lub GetActions. Ponieważ kanały gRPC są dostępne bez uwierzytelnienia, dowolna osoba osiągalna sieciowo może dostarczyć złośliwy obiekt, który zostanie wykonany przez interpreter Pythona podczas deserializacji.
Atakujący może uzyskać pełne zdalne wykonanie kodu (RCE) na serwerze polityk lub kliencie robota, co w praktyce oznacza możliwość przejęcia systemu, kradzieży danych, instalacji złośliwego oprogramowania lub zakłócenia działania fizycznego sprzętu robotycznego.
Należy zastosować patche dostępne u producenta zgodnie z referencjami (pull request #3048 w repozytorium GitHub huggingface/lerobot). Do czasu aktualizacji zaleca się ograniczenie dostępu sieciowego do portów gRPC wyłącznie do zaufanych hostów za pomocą firewalla oraz unikanie ekspozycji usługi na sieć publiczną.
Huggingface LeRobot w wersjach do 0.5.1 włącznie, w konfiguracji korzystającej z asynchronicznego potoku wnioskowania (komponenty policy server i robot client z kanałami gRPC).
Podatność została udokumentowana publicznie wraz z technicznym opisem exploitu pod adresem chocapikk.com/posts/2026/lerobot-pickle-rce/. Zgłoszenia problemów dostępne są pod numerami #3047 i #3134 w repozytorium GitHub producenta.
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:XHuggingface Lerobot
APPHuggingface≤ 0.5.1
Powiązane podatności
RCE w Huggingface Transformers — obejście trust_remote_code w LightGlue
Sandbox escape i RCE w Huggingface Smolagents (local_python_executor)
RCE przez deserializację w bibliotece Huggingface Transformers
A critical remote code execution vulnerability exists in all versions of the HuggingFace transformers library ...
Diffusers is the a library for pretrained diffusion models. Prior to 0.38.0, a trust_remote_code bypass in Di...