🇰🇷 한글 설명
PraisonAI 4.5.112 이상 4.6.59 미만 버전에서, Typer 기반 recipe 명령의 deprecated 경로(praisonai recipe serve)가 인증 없이 localhost가 아닌 인터페이스에 Recipe HTTP 서버를 기동할 수 있습니다. config.auth가 없으면 API 키/JWT 미들웨어가 적용되지 않아 미인증 요청으로 recipe API와 활성화된 경우 /admin/reload에 접근할 수 있습니다. 해당 문제는 4.6.59 버전에서 패치되었습니다.
💡 쉬운 설명
PraisonAI라는 AI 도구의 특정 명령을 실행하면 로그인 없이 누구나 접속할 수 있는 서버가 열릴 수 있습니다. 외부인이 이 서버를 통해 시스템 설정을 바꾸거나 기능을 조작할 위험이 있습니다.
🇺🇸 원문 (English)
PraisonAI is a multi-agent teams system. From version 4.5.112 to before version 4.6.59, PraisonAI's installed console entrypoint is Typer-first. In current releases, the recipe command is registered in the Typer app and praisonai recipe serve dispatches to the deprecated Typer command in src/praisonai/praisonai/cli/commands/recipe.py. That Typer command can start the Recipe HTTP server on a non-localhost interface with no authentication. It prints a deprecation warning, and then launches the server. Because config.auth is absent, create_app() does not attach the API-key or JWT middleware. Unauthenticated requests can then reach the recipe API and, when enabled, /admin/reload. This issue has been patched in version 4.6.59.
📍 영향받는 시스템
PraisonAI 4.5.112 이상 4.6.59 미만 버전 (praisonai 패키지 사용 환경)
⚔️ 공격 벡터
네트워크에서 인증 없이 recipe 서버 포트에 접속하여 recipe API 호출 및 /admin/reload 엔드포인트를 악용
🛡️ 대응 방법
PraisonAI를 4.6.59 이상으로 업그레이드하고, recipe 서버는 localhost에만 바인딩하며 config.auth를 반드시 설정
🔧 검증 코드
출력된 Version 값이 4.6.59 미만이고 4.5.112 이상이면 취약한 버전이므로 업그레이드가 필요하며, 4.6.59 이상이면 패치가 적용된 것입니다.
pip show praisonai 2>/dev/null | grep -i '^version'