
Prova de conceito de exploit para CVE-2026-42203, uma vulnerabilidade de SSTI no endpoint /prompts/test do LiteLLM, com verificação de callback via CEYE para testes autorizados.
Este documento descreve como iniciar um ambiente LiteLLM local e executar o script CVE-2026-42203.py para verificar a vulnerabilidade SSTI em /prompts/test.
Use apenas em ambientes de laboratório autorizados sob sua responsabilidade. Não direcione o script para alvos públicos não autorizados.
Navegue até o diretório Lab e inicie o LiteLLM, Postgres e Prometheus:
docker compose up -d
Verifique o status dos contêineres:
docker compose ps
Confirme que o serviço está acessível:
curl http://127.0.0.1:4000/
Master_Key padrão: sk-master-test-key-1234
Passe os parâmetros via linha de comando:
python3 cve_2026_42203_litellm_prompts_test_ssti.py \
--auth 'sk-local-test-key' \
--ceye-domain 'your-id.ceye.io' \
--ceye-token 'your-ceye-api-token'
Significado das variáveis:
LITELLM_API_KEY: Chave de acesso do LiteLLM. No ambiente Docker local, geralmente corresponde ao LITELLM_MASTER_KEY no arquivo .env.CEYE_DOMAIN: Seu subdomínio CEYE, por exemplo xxxxxx.ceye.io.CEYE_TOKEN: Seu token da API CEYE, usado para consultar registros de callback.Exemplo completo:
python3 cve_2026_42203_litellm_prompts_test_ssti.py \
--target http://127.0.0.1:4000 \
--auth 'sk-local-test-key' \
--ceye-domain 'your-id.ceye.io' \
--ceye-token 'your-ceye-api-token'
Parâmetros importantes:
--target: Endereço do serviço LiteLLM; o padrão é http://127.0.0.1:4000.--auth / --api-key: Chave LiteLLM usada para chamar /prompts/test.--ceye-domain: Domínio CEYE para callback.--ceye-token: Token da API CEYE. O script exibe automaticamente de forma ofuscada.--wait: Tempo de espera (em segundos) pelo callback do CEYE; padrão 20.--interval: Intervalo (em segundos) para consultar registros CEYE; padrão 3.--timeout: Tempo limite (em segundos) para requisições HTTP; padrão 10.--insecure: Adicione este parâmetro quando o alvo usar certificado HTTPS autoassinado para desabilitar a verificação do certificado TLS.Se o CEYE receber o callback, o script exibirá:
[VULNERABLE] CEYE received the callback request.
Se nenhum callback for recebido dentro do tempo de espera, o script exibirá:
[NOT_VULNERABLE] CEYE did not receive the callback request within the wait window.