🇰🇷 한글 설명
PraisonAI의 spider_tools에서 URL 검증 로직이 미흡하여 루프백 호스트 인코딩을 통한 우회가 가능합니다. 공격자가 조작된 URL을 통해 내부망 서비스에 접근할 수 있는 서버 측 요청 위조(SSRF) 취약점이 존재합니다.
💡 쉬운 설명
프로그램이 위험한 주소를 차단하는 과정에서 검사 규칙이 너무 단순하여, 교묘하게 변형된 주소를 걸러내지 못하는 문제입니다. 이를 통해 공격자가 내부 시스템에 몰래 접속을 시도할 수 있습니다.
🇺🇸 원문 (English)
PraisonAI is a multi-agent teams system. Prior to version 4.6.40 of PraisonAI, corresponding to version 1.6.40 of praisonaiagents, `spider_tools` URL validation can be bypassed using alternate loopback host encodings. The tool contains a URL validation function intended to block local or unsafe targets before fetching attacker-controlled URLs. However, the validation only blocks a small set of exact host strings such as `localhost` and `127.0.0.1`. It does not normalize hostnames, resolve DNS, parse numeric IPv4 variants, or validate the final resolved IP address before making the request. As a result, certain URLs may bypass the protection and still reach loopback services. After the weak validation passes, `scrape_page()` calls `requests.Session.get()` on the attacker-controlled URL. This allows an attacker who can influence URLs passed to `scrape_page`, `crawl`, or `extract_text` to induce SSRF requests against loopback-only services. This is a server-side request forgery protection bypass. PraisonAI version 4.6.40 and praisonaiagents version 1.6.40 contain a patch.
📍 영향받는 시스템
PraisonAI < 4.6.40, praisonaiagents < 1.6.40
⚔️ 공격 벡터
대체 루프백 호스트 인코딩을 사용하여 URL 검증을 우회한 후 SSRF 공격 수행
🛡️ 대응 방법
PraisonAI 4.6.40 또는 praisonaiagents 1.6.40 이상 버전으로 업데이트
🔧 검증 코드
출력된 버전이 4.6.40(PraisonAI) 또는 1.6.40(praisonaiagents) 미만인지 확인
pip show praisonai praisonaiagents | grep -E 'Name:|Version:'