🇰🇷 한글 설명
PraisonAI의 MCP 통합에서 사용자 제공 명령어를 실행할 때 부모 프로세스의 모든 환경 변수(API 키, 토큰, 데이터베이스 자격증명 등)가 자식 프로세스로 전달되는 보안 취약점입니다. npx -y 같은 패키지 러너를 통한 제3자 코드 실행 시 환경 변수에 포함된 민감 정보가 노출되고 공급망 공격에 악용될 수 있습니다. 4.5.128에서 수정되었습니다.
💡 쉬운 설명
PraisonAI에서 외부 프로그램을 실행할 때 API 키나 비밀번호 같은 민감한 정보가 자동으로 함께 전달됩니다. 악의적인 외부 패키지가 이 정보를 훔칠 수 있습니다.
🇺🇸 원문 (English)
PraisonAI is a multi-agent teams system. Prior to 4.5.128, PraisonAI’s MCP (Model Context Protocol) integration allows spawning background servers via stdio using user-supplied command strings (e.g., MCP("npx -y @smithery/cli ...")). These commands are executed through Python’s subprocess module. By default, the implementation forwards the entire parent process environment to the spawned subprocess. As a result, any MCP command executed in this manner inherits all environment variables from the host process, including sensitive data such as API keys, authentication tokens, and database credentials. This behavior introduces a security risk when untrusted or third-party commands are used. In common scenarios where MCP tools are invoked via package runners such as npx -y, arbitrary code from external or potentially compromised packages may execute with access to these inherited environment variables. This creates a risk of unintended credential exposure and enables potential supply chain attacks through silent exfiltration of secrets. This vulnerability is fixed in 4.5.128.
📍 영향받는 시스템
PraisonAI 4.5.127 이하 버전
⚔️ 공격 벡터
User supplies untrusted MCP commands (e.g., 'npx -y @smithery/cli ...') which executes external code with inherited environment variables containing secrets
🛡️ 대응 방법
PraisonAI를 4.5.128 이상으로 업그레이드 또는 MCP 명령어 실행 시 환경 변수 필터링 정책 적용
🔧 검증 코드
4.5.128 이상이면 취약점 해결, 4.5.127 이하면 즉시 업그레이드 필요
pip show praisonai | grep Version | awk '{print $2}'