🇰🇷 한글 설명
PraisonAI 멀티 에이전트 시스템의 레시피 실행 시 위험 도구 정책 검사가 TEMPLATE.yaml의 requires.tools만 확인하여, 4.5.87 이상 4.6.61 미만 버전에서 workflow.yaml을 통해 execute_command 같은 위험 도구를 우회 승인할 수 있습니다. 호출자가 allow_dangerous_tools=True를 설정하지 않아도 신뢰되지 않은 레시피가 셸 명령 실행 권한을 얻을 수 있습니다. 4.6.61 버전에서 패치되었습니다.
💡 쉬운 설명
PraisonAI라는 AI 에이전트 도구에서 보안 검사가 일부 설정 파일만 확인해 위험한 명령 실행 기능이 몰래 허용될 수 있습니다. 업데이트하여 4.6.61 이상 버전을 사용하면 해결됩니다.
🇺🇸 원문 (English)
PraisonAI is a multi-agent teams system. From version 4.5.87 to before version 4.6.61, PraisonAI recipe execution has a dangerous-tool policy that is supposed to block default-denied tools unless the caller explicitly passes allow_dangerous_tools=True. That policy only checks tools declared in TEMPLATE.yaml requires.tools. For steps-based recipes, the actual execution path loads workflow.yaml with YAMLWorkflowParser. That parser resolves agent-level tools: declarations and preserves top-level approve:. Workflow.start() then installs those YAML-approved tools into the approval context. As a result, an untrusted recipe can omit execute_command from TEMPLATE.yaml requires.tools, declare it in workflow.yaml agents.*.tools, and add top-level approve: [execute_command]. The caller did not set allow_dangerous_tools=True, but the recipe policy allows the recipe and the workflow approval path self-approves the critical shell tool. This issue has been patched in version 4.6.61.
📍 영향받는 시스템
PraisonAI 4.5.87 이상 4.6.61 미만 버전
⚔️ 공격 벡터
악성 레시피의 workflow.yaml에 execute_command 도구와 top-level approve 항목을 추가해 TEMPLATE.yaml 정책 검사를 우회하여 셸 명령을 실행
🛡️ 대응 방법
PraisonAI를 4.6.61 이상 버전으로 업데이트하고, 신뢰되지 않은 레시피 실행을 피하며, 신뢰할 수 없는 레시피의 workflow.yaml 승인 설정을 검토
🔧 검증 코드
출력된 버전이 4.6.61 미만이면 취약하므로 업데이트가 필요하고, 4.6.61 이상이면 패치가 적용된 상태입니다.
pip show praisonai 2>/dev/null | grep -i '^version'