🇰🇷 한글 설명
PraisonAI의 Dynamic Context Discovery 기능에서 ctx.get_tools()를 통해 노출되는 artifact 도우미 도구(artifact_head, artifact_tail, artifact_grep, artifact_chunk)가 전달된 artifact_path가 설정된 저장소에서 생성된 것인지, 또는 설정된 artifact 기본 디렉터리 하위에 있는지 검증하지 않습니다. 이로 인해 도구 인자를 조작할 수 있는 사용자나 프롬프트는 PraisonAI 프로세스가 읽을 수 있는 호스트 파일시스템의 임의 파일을 읽을 수 있습니다. 이 문제는 버전 4.6.59에서 패치되었습니다.
💡 쉬운 설명
PraisonAI의 특정 기능에서 파일을 읽는 도구가 허용된 폴더 밖의 파일도 열어볼 수 있는 문제입니다. 공격자는 이를 이용해 .env 파일이나 클라우드 자격 증명 같은 민감한 정보를 훔칠 수 있습니다.
🇺🇸 원문 (English)
PraisonAI is a multi-agent teams system. From version 3.8.1 to before version 4.6.59, PraisonAI's Dynamic Context Discovery feature exposes artifact helper tools through ctx.get_tools(). The implemented artifact tools do not enforce that the supplied artifact_path is an artifact created by the configured store or that it lives under the configured artifact base directory. Instead, artifact_head, artifact_tail, artifact_grep, and artifact_chunk wrap the caller-supplied path directly into an ArtifactRef and then read it from the host filesystem. As a result, any prompt/user/tool-caller that can influence those tool arguments can read files readable by the PraisonAI process, such as project .env files, cloud credentials, SSH keys, source files, or other local data. This issue has been patched in version 4.6.59.
📍 영향받는 시스템
PraisonAI 3.8.1 이상 4.6.59 미만 버전
⚔️ 공격 벡터
도구 인자(artifact_path)에 임의의 파일 경로를 주입하여 프롬프트 또는 사용자 입력을 통해 호스트의 임의 파일을 읽음
🛡️ 대응 방법
PraisonAI를 4.6.59 이상 버전으로 업그레이드하고, 해당 버전 전까지는 artifact 도구 사용을 비활성화하거나 입력 경로를 제한
🔧 검증 코드
출력된 버전이 4.6.59 미만이면 취약하며, 4.6.59 이상이면 패치가 적용된 것입니다.
pip show praisonai 2>/dev/null | grep -i '^version'