🇰🇷 한글 설명
Web3.py의 특정 버전에서 CCIP Read URL 검증 시 IPv4-mapped IPv6 주소를 제대로 처리하지 못해 서버 측 요청 위조(SSRF) 취약점이 발생합니다. 악성 컨트랙트가 IPv4-mapped IPv6 호스트나 AAAA 레코드를 포함한 URL을 반환하면, 클라이언트가 루프백 또는 내부 네트워크 서비스로 요청을 보내게 유도할 수 있습니다.
💡 쉬운 설명
웹3 라이브러리가 주소를 검사할 때 특정 형식의 주소를 제대로 걸러내지 못하는 결함이 있습니다. 이를 통해 해커가 사용자의 컴퓨터 내부 네트워크에 몰래 접근하도록 유도할 수 있습니다.
🇺🇸 원문 (English)
Web3.py 7.15.0 through 7.16.0 and 8.0.0b2 through 8.0.0 contains a server-side request forgery vulnerability because _check_ip_blocked() does not unwrap IPv4-mapped IPv6 addresses in CCIP Read URL validation. Malicious contracts can return OffchainLookup URLs with IPv4-mapped IPv6 hosts or AAAA records, making clients with CCIP Read enabled send requests to loopback, private, or link-local services.
📍 영향받는 시스템
Web3.py 7.15.0 ~ 7.16.0 및 8.0.0b2 ~ 8.0.0
⚔️ 공격 벡터
악성 스마트 컨트랙트가 조작된 OffchainLookup URL을 반환하여 클라이언트의 내부 네트워크로 SSRF 공격 수행
🛡️ 대응 방법
Web3.py를 취약점이 해결된 최신 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 버전이 취약 범위(7.15.0-7.16.0 또는 8.0.0b2-8.0.0)에 포함되는지 확인하십시오.
pip show web3 | grep Version