🇰🇷 한글 설명
PraisonAI의 CLI에서 @url: 태그를 포함한 프롬프트를 처리할 때, 입력된 URL로 직접 HTTP 요청을 보내고 그 응답을 모델 컨텍스트에 추가하는 취약점이 존재합니다. 이 과정에서 로컬호스트나 내부 네트워크 주소에 대한 제한이 없어, 공격자가 조작한 프롬프트를 통해 사용자의 로컬 리소스나 내부 데이터를 탈취할 수 있습니다.
💡 쉬운 설명
사용자가 입력한 프롬프트에 특정 주소가 포함되어 있으면, 프로그램이 자동으로 그 주소에 접속해 내용을 가져오는 기능이 있습니다. 공격자가 이 기능을 악용하면 사용자의 컴퓨터 내부 파일이나 비밀 정보를 몰래 읽어갈 수 있습니다.
🇺🇸 원문 (English)
PraisonAI is a multi-agent teams system. Prior to version 4.6.40 of PraisonAI, corresponding to version 1.6.40 of praisonaiagents, PraisonAI's direct-prompt CLI automatically expands `@url:` mentions in raw prompt text before agent execution begins. If a prompt contains `@url:<http-or-https-url>`, the CLI calls `MentionsParser.process(...)`. The `@url:` handler then performs a direct `urllib.request.urlopen()` request to the attacker-controlled URL and returns the response body. That response body is prepended to the final model prompt context. There is no loopback/private-address restriction, no metadata-service restriction, and no approval gate before the fetch. As a result, attacker-influenced prompt text can cause the operator's machine to fetch localhost-only HTTP resources and inject the response into model context. PraisonAI version 4.6.40 and praisonaiagents version 1.6.40 contain a fix.
📍 영향받는 시스템
PraisonAI < 4.6.40 및 praisonaiagents < 1.6.40
⚔️ 공격 벡터
공격자가 조작된 @url: 태그가 포함된 프롬프트를 입력하여 사용자의 로컬 네트워크 또는 내부 서비스에 접근
🛡️ 대응 방법
PraisonAI를 4.6.40 버전 이상으로, praisonaiagents를 1.6.40 버전 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 버전이 praisonai 4.6.40 미만 또는 praisonaiagents 1.6.40 미만이면 취약한 상태입니다.
pip show praisonai praisonaiagents | grep -E 'Name:|Version:'