Tres horas después de que una nueva tanda de CVE afectara a servidores MCP, una segunda divulgación masiva llegó al conjunto de agentes de IA. Seis CVE, todos asignados por [email protected], publicados entre 20:17:41.107 y 20:17:41.843 UTC —una diferencia de 0,74 segundos—, todos apuntando al sitio de divulgación de un investigador. Afectan a Agno, LiteLLM, gpt-researcher, crewai-tools y PentestGPT.
El 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 es un proxy que miles de equipos ejecutan delante de sus modelos.
La corrección es real y está presente en el código actual: prompt_manager.py ahora importa ImmutableSandboxedEnvironment con el comentario en línea "Sandboxed env: templates can come from user input via /prompts/test." Su origen está en el commit d910a956, fechado el 9 de abril de 2026, cuyo título es "fix(proxy): improve input validation on management endpoints." El diff sustituye Environment( por ImmutableSandboxedEnvironment(. No hubo aviso, ni CVE, ni mención alguna en el asunto de ese commit a inyección de plantillas o ejecución remota de código. La versión 1.82.4 se publicó en PyPI el 18 de marzo; la actual es 1.98.0.
Lo que falla en el enfoque habitual
La frase citable es "RCE no autenticada en LiteLLM, divulgada el 27 de agosto". La fecha que importa es 9 de abril. Durante 140 días, cualquiera que leyera el changelog de LiteLLM para decidir si actualizar no tenía ninguna pista: la corrección de seguridad más grave de la versión estaba descrita con el lenguaje de una limpieza de lint.
La entrada de Agno falla en sentido opuesto. Se registra contra un comportamiento documentado, intencionado y todavía vigente. "Hasta e incluyendo 2.5.8" sugiere una 2.5.9 corregida; no existe. runpy.run_path(...) y exec(code, self.safe_globals, self.safe_locals) están en main hoy, tras un salto de versión principal a 3.0.1, bajo la advertencia de ejecución propia de la biblioteca: "PythonTools can run arbitrary code, please provide human supervision." Una herramienta cuyo propósito es ejecutar Python escrito por un modelo no es una RCE sin parche, y el límite de versión inventa un parche que no existe.
Seis divulgaciones, cero severidad
El bloque metrics de las seis está vacío. No hay CVSS de MITRE, ni del investigador, ni de NVD. Una RCE no autenticada en un proxy ampliamente desplegado y una credencial de telemetría codificada en PentestGPT quedan formalmente igual en la base de datos, y los escáneres posteriores o bien las descartarán o bien inventarán un número. Dos entradas además fijan una release candidate — <= 1.10.2rc1 — como techo afectado, frente a la versión actual de crewai-tools, 1.15.18, algo que ningún resolvedor de dependencias puede aplicar.
