무슨 일이 있었나
LLM 기반 애플리케이션을 구축하기 위한 프레임워크인 Langroid는 TableChatAgent.pandas_eval() 및 VectorStore.compute_from_docs()의 샌드박스 탈출/RCE에 취약합니다. 둘 다 eval()의 로컬을 빈 딕셔너리로 설정하여 LLM 생성 코드 실행을 샌드박스에 두려고 시도했지만 글로벌에서 __builtins__를 스크러빙하지 않아서 Python이 암묵적으로 모든 기본 제공 함수를 주입합니다 — __import__('os').system()과 같은 함수에 대한 전체 액세스를 부여합니다. 이러한 에이전트는 기본적으로 LLM 생성 도구 메시지를 실행하므로, 에이전트에 도달하는 프롬프트 주입(직접 또는 RAG 수집 콘텐츠를 통한 간접)이 전체 RCE를 달성할 수 있습니다. 0.65.2에서 수정되었습니다.
왜 중요한가
CVSS 10.0 — 이것은 광범위하게 사용되는 LLM 에이전트 프레임워크의 완전한 샌드박스 탈출 RCE이며, 추가 인증이 필요 없이 프롬프트 주입만으로 악용 가능합니다. TableChatAgent 및 VectorStore가 핵심이고 일반적으로 사용되는 Langroid 기능이므로, 패치되지 않은 Langroid에 구축된 모든 애플리케이션이 LLM 자신의 출력이 이러한 코드 경로에 도달하도록 허용하면 모델이 읽는 콘텐츠(예: RAG 파이프라인의 중독된 문서)에 의해 평범하게 손상됩니다.
공격 경로
프롬프트 주입(직접 또는 RAG 콘텐츠를 통한 간접)은 LLM이 TableChatAgent.pandas_eval() 또는 VectorStore.compute_from_docs()에 도달하는 도구 호출 페이로드를 내보내게 하며, 불완전한 eval() 샌드박싱은 임의의 Python/OS 명령 실행을 허용합니다.
영향받는 시스템
Langroid (pip 패키지) < 0.65.2
완화 방안
Langroid ≥0.65.2로 업그레이드합니다.