무슨 일이 있었나
에이전트가 제한된 JavaScript를 실행할 수 있도록 의도된 PraisonAI의 'codeMode' 기능은 new Function()/with(sandbox) 주변의 유일한 보안 제어로 우회 가능한 문자열 차단 목록을 사용하여 완전한 샌드박스 탈출 및 에이전트를 실행하는 호스트에서 임의 코드 실행을 허용합니다.
왜 중요한가
PraisonAI는 멀티 에이전트 오케스트레이션 프레임워크입니다; codeMode는 LLM 생성 콘텐츠에 노출되는 도구 실행 표면이므로 간접 프롬프트 주입 또는 악의적인 도구 응답은 에이전트가 샌드박스를 탈출하고 호스트에서 임의 코드를 실행하도록 할 수 있습니다 — 문서화된 우회 기법이 있는 고전적인 새로운 에이전트 실행 공격 클래스입니다.
공격 경로
codeMode는 new Function() 내에서 with(sandbox) 블록 내의 신뢰할 수 없는/모델 생성 JavaScript를 실행하며 소스 코드 문자열 차단 목록과 그림자 처리된 process/require 속성에만 의존합니다. 공격자(또는 프롬프트 주입된 LLM 출력)는 차단 목록을 우회하는 코드를 구성할 수 있습니다 — 예: Function('return this')()를 통해 — 실제 전역 객체를 복구하고 샌드박스를 탈출하여 궁극적으로 Node.js 프로세스 및 OS 수준 실행에 도달합니다. 두 번째 관련 CVE(CVE-2026-57141)는 동일한 정규식 차단 목록 우회 기법을 다룹니다.
영향받는 시스템
PraisonAI(praisonai-ts), 버전 1.4.0 ~ 1.7.2
완화 방안
PraisonAI(praisonai-ts)를 1.7.2 이상으로 업그레이드하세요. 이는 문자열 차단 목록 샌드박스를 적절한 격리로 대체합니다. 패치될 때까지 codeMode를 비활성화하거나 에이전트 실행을 신뢰할 수 있는 비공격자 영향 코드로 제한하세요.