← back
CVE-2026-42271highunder attackCWE-77CWE-78

LiteLLM: Authenticated command execution via MCP stdio test endpoints

100Vexday Risk Score

Patch now. It under exploitation confirmed by CISA and has a working public exploit.

ssvc Actcvss 8.7epss 83%
from disclosure to weapon12 days
Published on NVDMay 8
1st PoC+12d
CISA KEV+31d
exploitation probability
83%top 1% of all CVEs
observed exploitation
yesCISA + VulnCheck
5 public exploit(s)
Action required by CISAfederal deadline: 2026-06-22

Apply mitigations per vendor instructions, follow applicable BOD 22-01 guidance for cloud services, or discontinue use of the product if mitigations are unavailable.

Summary

Endpoints de teste/preview de servidores MCP no proxy LiteLLM permitem que qualquer usuário autenticado — inclusive chaves de API de baixo privilégio ('internal-user') — envie uma configuração de transporte stdio completa e faça o proxy spawnar o comando informado como subprocesso no host, com os privilégios do processo do proxy. Não é uma falha de injeção clássica: é uma funcionalidade legítima (spawn de comando MCP via stdio) exposta sem checagem de papel/role nos endpoints de teste, o que transforma um recurso administrativo em execução remota de comando para qualquer conta autenticada. Está no catálogo KEV da CISA com exploração confirmada, tem PoC pública e template Nuclei — o que eleva o risco prático muito além do que uma CVSS 8.7 já sugere.

Technical detail

O LiteLLM Proxy expõe endpoints REST para testar uma configuração de servidor MCP antes de ela ser salva: POST /mcp-rest/test/connection e POST /mcp-rest/test/tools/list. Ambos aceitam no corpo da requisição a configuração completa do servidor MCP, incluindo os campos command, args e env usados pelo transporte stdio do protocolo MCP. Quando a configuração enviada usa transporte stdio, o backend tenta estabelecer a conexão executando de fato o comando informado como subprocesso no host onde o proxy roda.

O defeito central é de controle de acesso (CWE-862, Missing Authorization / autorização incorreta): os dois endpoints são protegidos apenas por uma chave de API válida do proxy, sem checagem de papel (role). Isso significa que qualquer chave autenticada — mesmo as de menor privilégio, destinadas a usuários internos sem função administrativa — consegue acionar o mesmo caminho de código que deveria estar restrito a quem tem permissão para cadastrar/gerenciar servidores MCP.

O atacante controla integralmente o binário executado (command), os argumentos (args) e variáveis de ambiente (env) passadas ao subprocesso. Como o objetivo declarado do endpoint é 'testar antes de salvar', não há persistência do servidor MCP malicioso no banco de configuração — mas isso é irrelevante para o impacto, porque a execução acontece de forma síncrona na própria chamada de teste, antes de qualquer decisão de salvar.

How it’s exploited

O vetor é uma chamada HTTP autenticada ao proxy LiteLLM, atingindo POST /mcp-rest/test/connection ou POST /mcp-rest/test/tools/list com um corpo JSON descrevendo um servidor MCP configurado para transporte stdio, no qual os campos command/args/env apontam para o binário e argumentos que o atacante deseja executar. Não há necessidade de interação do usuário nem de bypass de autenticação — o único pré-requisito real é possuir qualquer chave de API válida do proxy, incluindo chaves de usuário interno de baixo privilégio, o que na prática cobre qualquer conta legítima criada para uso cotidiano da plataforma, não apenas administradores.

O vetor CVSS 4.0 (AV:N/AC:L/AT:P/PR:L/UI:N) reflete exatamente isso: ataque remoto pela rede, complexidade baixa, privilégio baixo necessário (não administrativo), sem interação do usuário, mas com uma condição de ataque presente (AT:P) — a necessidade de a instância ter o recurso MCP/stdio acessível e de o atacante possuir uma chave válida. O resultado final é execução de comando arbitrário com os privilégios do processo do proxy no host — normalmente o suficiente para leitura de segredos/configuração do proxy, acesso à rede interna a partir do host, e movimento lateral, dependendo de como a instância está implantada.

A presença no catálogo KEV da CISA indica exploração confirmada em ambiente real, e a existência de PoC pública e template Nuclei reduz drasticamente a barreira técnica: a falha deixou de exigir pesquisa e passou a ser scanner-friendly, o que tende a acelerar exploração em massa contra instâncias expostas.

Versions

Affected
LiteLLM (BerriAI/litellm) da versão 1.74.2 até versões anteriores a 1.83.7.
Fixed in
1.83.7 e posteriores (tag v1.83.7-stable). Backports aplicados via Red Hat OpenShift AI nas versões 3.4.1 (RHSA-2026:27784), 2.25.8 (RHSA-2026:28960) e 3.3.4 (RHSA-2026:30056).

How to protect

A correção definitiva é atualizar o LiteLLM para a versão 1.83.7 ou posterior (release v1.83.7-stable), que fecha o gate de autorização nos endpoints de teste MCP. Instalações do Red Hat OpenShift AI que empacotam o componente afetado foram corrigidas nas erratas RHSA-2026:27784 (RHOAI 3.4.1), RHSA-2026:28960 (RHOAI 2.25.8) e RHSA-2026:30056 (RHOAI 3.3.4).

Se a atualização imediata não for viável, os paliativos reais e seus custos: restringir o acesso de rede aos endpoints /mcp-rest/test/connection e /mcp-rest/test/tools/list (por exemplo, bloqueio de rota em proxy reverso/gateway) até a atualização — custo é perder a funcionalidade de preview de servidores MCP; ou desabilitar por completo o recurso MCP no proxy se ele não estiver em uso. Restringir apenas por role/permissão de chave de API não resolve, porque o próprio defeito é a ausência dessa checagem de role nesses endpoints — qualquer chave válida, independente de privilégio nominal, ainda passa. Rotação de chaves de API não mitiga a vulnerabilidade em si, apenas reduz a superfície de quem já possui uma chave comprometida.

Não funciona como mitigação: confiar apenas em autenticação básica da API como controle suficiente, já que o problema é justamente a falta de autorização granular sobre uma funcionalidade que executa comando no host — a autenticação por si só (qualquer chave válida) é exatamente o que o atacante precisa.

How to detect

Nos logs de acesso do proxy LiteLLM, procure requisições POST para /mcp-rest/test/connection e /mcp-rest/test/tools/list cujo corpo contenha um objeto de configuração MCP com transporte stdio e campos command/args/env apontando para binários incomuns (shells, interpretadores, ferramentas de rede como curl/wget, ou caminhos fora do padrão de uso), especialmente originadas de chaves de API sem função administrativa ou de IPs fora do padrão de uso interno. Correlacionar essas chamadas com a identidade da chave de API usada (auditoria de uso de API key) ajuda a distinguir teste legítimo de servidor MCP de tentativa de abuso.

Como o mecanismo gera um subprocesso real no host, monitoramento de processos no servidor onde o proxy roda — alertando para processos filhos anômalos do processo do LiteLLM (shells, binários de sistema não relacionados a integrações MCP esperadas) — é um sinal mais confiável do que apenas log HTTP, já que a existência de PoC pública e template Nuclei sugere variações de payload que podem não seguir um padrão único de string na requisição.

Researched and written with AI from the vendor advisory and public analysis, with the sources above. Always confirm the fixed version in the official advisory before acting.
LiteLLM is a proxy server (AI Gateway) to call LLM APIs in OpenAI (or native) format. From version 1.74.2 to before version 1.83.7, two endpoints used to preview an MCP server before saving it — POST /mcp-rest/test/connection and POST /mcp-rest/test/tools/list — accepted a full server configuration in the request body, including the command, args, and env fields used by the stdio transport. When called with a stdio configuration, the endpoints attempted to connect, which spawned the supplied command as a subprocess on the proxy host with the privileges of the proxy process. The endpoints were gated only by a valid proxy API key, with no role check. Any authenticated user — including holders of low-privilege internal-user keys — could therefore run arbitrary commands on the host. This issue has been patched in version 1.83.7.
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:N/SA:N
Affected products
BerriAI · litellm
⚠ Public resources, to assess the exposure of systems you control or are authorized to test. Test only with authorization.