Falha no LeRobot expõe servidores de robôs a RCE sem autenticação

O framework de robótica de código aberto LeRobot, da Hugging Face, teve uma falha crítica de execução remota de código revelada. Qualquer pessoa que consiga alcançar a porta do serviço pode assumir a máquina sem usuário, senha ou certificado. A vulnerabilidade é rastreada como CVE-2026-25874.

Onde está o problema

O LeRobot costuma rodar modelos de política treinados em um servidor com GPU, enquanto o robô na ponta chama um PolicyServer via gRPC para receber instruções de ação. Essa arquitetura não é o problema. O ponto perigoso está na camada de comunicação, que usa pickle.loads() do Python sobre dados recebidos pelo serviço.

Pickle não é um formato passivo como JSON ou protobuf. Na desserialização, ele pode reconstruir objetos Python arbitrários e executar lógica, inclusive caminhos que terminam em execução de comandos. Os handlers RPC afetados são SendPolicyInstructions() e SendObservations(). Ambos aceitam bytes brutos e os entregam diretamente ao pickle, sem validação de tipo.

Assim, um payload preparado com chamada a os.system() pode rodar comandos no instante da desserialização. O risco aumenta porque o PolicyServer usa add_insecure_port() por padrão, sem TLS e sem autenticação. Mesmo em rede interna, basta a porta estar acessível.

Por que a robótica torna o impacto maior

A versão confirmada como afetada é o LeRobot v0.4.3 no PyPI. Versões anteriores que mantêm a mesma arquitetura de inferência assíncrona provavelmente também estão expostas. O projeto soma mais de 21.500 estrelas no GitHub e é um dos nomes mais visíveis da robótica open source; no momento do artigo original, ainda não havia versão oficial corrigida.

Invadir um PolicyServer não equivale a invadir apenas um servidor de aplicação. Esses sistemas frequentemente rodam com privilégios altos em máquinas GPU, ficam perto de datasets e pesos de modelos e se conectam diretamente a hardware robótico físico. Em linhas de produção ou robôs médicos, uma falha de software pode virar risco de segurança física.

O que fazer agora

Pesquisadores recomendam trocar pickle por JSON, campos nativos de protobuf ou safetensors da Hugging Face; ativar TLS com portas gRPC seguras; vincular o serviço a interfaces privadas; bloquear a porta por firewall; e parar de expor o PolicyServer até que exista um patch real. Essas medidas reduzem o alcance do problema, mas a correção duradoura depende de uma nova versão da Hugging Face.

A lição mais ampla lembra antigas falhas em arquivos de modelo do PyTorch. Equipes de machine learning usam pickle porque é rápido, conveniente e integrado ao ecossistema. Quando arquivos de modelo, instruções de política ou canais de observação aceitam entrada externa, essa conveniência vira uma superfície de execução de código.

Fontes: CocoLoop, CVE-2026-25874: Hugging Face LeRobot Unauthenticated RCE via Pickle Deserialization (Resecurity); Critical CVE-2026-25874 Leaves Hugging Face LeRobot Open to Unauthenticated RCE (The Hacker News)