🇰🇷 한글 설명
PraisonAI 3.8.1 이상 4.6.59 미만 버전의 Dynamic Context 모듈은 도구 호출자가 전달하는 run_id와 agent_id 값을 검증하지 않고 파일 경로에 결합합니다. 이로 인해 낮은 권한의 프롬프트나 사용자가 설정된 기본 디렉터리 외부의 .jsonl 및 .log 파일을 읽을 수 있습니다.
💡 쉬운 설명
PraisonAI라는 AI 에이전트 시스템에서 파일 경로 입력값을 제대로 확인하지 않는 문제가 있습니다. 권한이 낮은 사용자도 허용된 폴더 밖의 로그와 기록 파일을 읽을 수 있습니다.
🇺🇸 원문 (English)
PraisonAI is a multi-agent teams system. From version 3.8.1 to before version 4.6.59, PraisonAI's Dynamic Context module provides filesystem-backed history and terminal-log storage. The module also exports agent-callable tool factories. Those tools accept run_id and agent_id arguments from the tool caller. The underlying stores join those values into filesystem paths without rejecting absolute paths or .. traversal. Because run_id can be an absolute path and agent_id can contain traversal, a lower-trust prompt/user that can call these tools can read .jsonl and .log files outside the configured Dynamic Context base directory. This issue has been patched in version 4.6.59.
📍 영향받는 시스템
PraisonAI 3.8.1 이상 4.6.59 미만 버전 (Dynamic Context 모듈 사용 환경)
⚔️ 공격 벡터
도구 호출 시 run_id에 절대 경로를, agent_id에 ../ 경로 순회 문자열을 넣어 기본 디렉터리 외부 파일을 읽음
🛡️ 대응 방법
PraisonAI를 4.6.59 이상 버전으로 업그레이드
🔧 검증 코드
출력된 Version 값이 4.6.59 미만이면 취약하며, 4.6.59 이상이면 패치가 적용된 것입니다.
pip show praisonai 2>/dev/null | grep -i '^version'