Três horas após uma nova leva de CVEs atingir servidores MCP, uma segunda divulgação em massa chegou à pilha de agentes de IA. Seis CVEs, todos atribuídos a [email protected], publicados entre 20:17:41.107 e 20:17:41.843 UTC — um intervalo de 0,74 segundo —, todos apontando para o site de divulgação de um pesquisador. Eles têm como alvo Agno, LiteLLM, gpt-researcher, crewai-tools e PentestGPT.
O que importa
CVE-2026-37004: "BerriAI litellm <=1.82.4 is vulnerable to Server-Side Template Injection (SSTI), which allows unauthenticated remote attackers to execute arbitrary OS commands via a crafted dotprompt_content parameter in the /prompts/test endpoint due to use of an unsandboxed jinja2.Environment." LiteLLM é um proxy que milhares de equipes executam à frente de seus modelos.
A correção é real e já consta no código atual: prompt_manager.py agora importa ImmutableSandboxedEnvironment com o comentário inline "Sandboxed env: templates can come from user input via /prompts/test." A mudança remonta ao commit d910a956, datado de 9 de abril de 2026, cujo título é "fix(proxy): improve input validation on management endpoints." O diff troca Environment( por ImmutableSandboxedEnvironment(. Não houve advisory, não houve CVE e não havia em nenhum lugar no assunto desse commit menção a injeção de template ou execução remota de código. A versão 1.82.4 foi publicada no PyPI em 18 de março; a atual é 1.98.0.
O que o enquadramento comum erra
A frase que cabe em citação é "RCE não autenticada no LiteLLM, divulgada em 27 de agosto." A data que importa é 9 de abril. Por 140 dias, qualquer pessoa lendo o changelog do LiteLLM para decidir se deveria atualizar não tinha nada em que se apoiar — a correção de segurança mais grave da versão foi descrita no registro como se fosse uma limpeza de lint.
A entrada do Agno falha no sentido oposto. Ela é registrada contra um comportamento documentado, intencional e ainda presente. "Até e incluindo 2.5.8" sugere uma 2.5.9 corrigida; não existe nenhuma. runpy.run_path(...) e exec(code, self.safe_globals, self.safe_locals) estão em main hoje, após uma mudança de versão principal para 3.0.1, sob o próprio aviso em tempo de execução da biblioteca: "PythonTools can run arbitrary code, please provide human supervision." Uma ferramenta cujo propósito é executar Python escrito pelo modelo não é uma RCE sem correção, e o teto de versão fabrica um patch que não existe.
Seis divulgações, zero severidade
O bloco metrics em todas as seis está vazio. Nenhum CVSS da MITRE, nenhum do pesquisador, nenhum da NVD. Uma RCE não autenticada em um proxy amplamente implantado e uma credencial de telemetria codificada no PentestGPT entram formalmente iguais no banco de dados, e os scanners downstream ou as descartarão ou inventarão um número. Duas entradas também apontam uma release candidate — <= 1.10.2rc1 — como teto afetado, contra um crewai-tools atual de 1.15.18, o que nenhum resolvedor de dependências consegue processar.
