별도의 CVE 급증이 MCP 서버들을 강타한 지 3시간 뒤, AI 에이전트 스택에 두 번째 대규모 공개가 도착했다. [email protected]가 모두 할당한 6건의 CVE는 20:17:41.107 UTC와 20:17:41.843 UTC 사이에 공개됐고, 0.74초의 간격을 두고 모두 한 연구자의 공개 사이트를 가리켰다. 대상은 Agno, LiteLLM, gpt-researcher, crewai-tools, PentestGPT다.

가장 중요한 항목

CVE-2026-37004: "BerriAI litellm <=1.82.4는 Server-Side Template Injection(SSTI)에 취약하며, 이로 인해 인증되지 않은 원격 공격자가 무차별 OS 명령을 실행할 수 있다. 이는 /prompts/test 엔드포인트의 조작된 dotprompt_content 매개변수를 통해, 샌드박스가 적용되지 않은 jinja2.Environment 사용으로 인해 가능하다." LiteLLM은 수천 개 팀이 모델 앞단에 배치해 사용하는 프록시다.

수정 사항은 실제로 존재하며 현재 코드에도 반영돼 있다. prompt_manager.py는 이제 ImmutableSandboxedEnvironment를 import하며, 인라인 주석에는 "Sandboxed env: templates can come from user input via /prompts/test."라고 적혀 있다. 이는 2026년 4월 9일자 d910a956 커밋으로 추적되며, 제목은 "fix(proxy): improve input validation on management endpoints."다. 이 diff는 Environment(ImmutableSandboxedEnvironment(로 바꿨다. 그러나 해당 커밋 제목 어디에도 템플릿 인젝션이나 원격 코드 실행에 대한 언급은 없었고, 자문이나 CVE도 없었다. 버전 1.82.4는 3월 18일 PyPI에 공개됐으며, 현재 버전은 1.98.0이다.

일반적인 서술이 놓치는 점

인용하기 쉬운 문장은 "27 August에 공개된 LiteLLM의 인증 없는 RCE"다. 그러나 실제로 중요한 날짜는 4월 9일이다. 140일 동안 LiteLLM의 변경 로그를 보고 업그레이드 여부를 판단하려던 누구도 참고할 만한 단서를 얻지 못했다. 릴리스의 가장 중대한 보안 수정이 마치 린트 정리처럼 적혀 있었기 때문이다.

Agno 항목은 정반대 방향에서 실패한다. 이는 문서화돼 있고, 의도됐으며, 여전히 제공되는 동작을 상대로 제기됐다. "2.5.8 이하"라는 표기는 2.5.9라는 수정 버전을 암시하지만, 그런 버전은 없다. runpy.run_path(...)exec(code, self.safe_globals, self.safe_locals)는 오늘도 main에 있으며, 주요 버전이 3.0.1로 바뀐 뒤에도 라이브러리 자체 런타임 경고인 "PythonTools can run arbitrary code, please provide human supervision." 아래에 놓여 있다. 모델이 작성한 Python을 실행하는 것이 목적의 도구를 패치되지 않은 RCE라고 부를 수는 없으며, 버전 상한은 존재하지 않는 패치를 만들어낸다.

6건의 공개, 0점의 심각도

6건 모두의 metrics 블록은 비어 있다. MITRE도, 연구자도, NVD도 CVSS를 넣지 않았다. 널리 배포된 프록시의 인증 없는 RCE와 PentestGPT의 하드코딩된 텔레메트리 자격 증명은 데이터베이스에서 형식상 동등하게 취급되며, 하위 스캐너는 이를 무시하거나 임의의 수치를 만들어낼 것이다. 두 항목은 또 릴리스 후보<= 1.10.2rc1 — 를 영향을 받는 상한으로 명시하는데, 이는 현재 crewai-tools 1.15.18과 맞지 않아 어떤 의존성 해결 도구도 대응할 수 없다.