🇰🇷 한글 설명
PraisonAI의 shell() 헬퍼 함수가 명령어를 검증할 때 첫 번째 토큰만 확인하고 전체 문자열을 child_process.exec()로 전달하는 취약점이 발견되었습니다. 공격자는 허용된 읽기 전용 명령 뒤에 쉘 문법을 사용하여 임의의 명령어를 추가함으로써 권한을 탈취할 수 있습니다. 이 문제는 버전 1.7.2에서 수정되었습니다.
💡 쉬운 설명
허용된 명령어 뒤에 몰래 다른 명령어를 붙여서 실행할 수 있는 보안 구멍이 있습니다. 이를 통해 해커가 시스템에 마음대로 명령을 내릴 수 있습니다.
🇺🇸 원문 (English)
PraisonAI is a multi-agent teams system. From 1.5.1 until 1.7.2, the shell() helper exported from src/praisonai-ts/src/tools/utility-tools.ts checks only the first whitespace-delimited token against safeCommands and then passes the complete original string to child_process.exec(). A string that starts with an allowed read-only command can append a second non-allowlisted command through shell syntax, allowing arbitrary command execution with the PraisonAI process privileges. This issue is fixed in version 1.7.2.
📍 영향받는 시스템
PraisonAI 버전 1.5.1 ~ 1.7.2
⚔️ 공격 벡터
허용된 명령어 뒤에 쉘 메타문자(예: ;, &&, |)를 사용하여 임의의 명령어를 결합하는 방식
🛡️ 대응 방법
PraisonAI를 최신 버전인 1.7.2 이상으로 업데이트하십시오.
🔧 검증 코드
출력 결과에 취약한 버전 범위(1.5.1~1.7.2)가 나타나면 해당 시스템은 보안에 취약한 상태입니다.
npm list -g praisonai-ts | grep -E 'praisonai-ts@([1-5]\.|1\.[6-7]\.[0-2])'