🇰🇷 한글 설명
Python 3.11.1 이전 버전의 IDNA(RFC 3490) 디코더에서 불필요한 이차 시간 복잡도 알고리즘이 발견되었습니다. 공격자가 조작된 매우 긴 호스트 이름을 제공할 경우 CPU 자원을 과도하게 사용하여 서비스 거부(DoS) 상태를 유발할 수 있습니다.
💡 쉬운 설명
특수하게 만들어진 아주 긴 인터넷 주소를 처리할 때 컴퓨터가 계산을 하느라 너무 힘들어해서 멈춰버릴 수 있는 문제입니다. 공격자가 가짜 주소를 보내면 사용자의 컴퓨터가 느려지거나 응답하지 않게 됩니다.
🇺🇸 원문 (English)
An issue was discovered in Python before 3.11.1. An unnecessary quadratic algorithm exists in one path when processing some inputs to the IDNA (RFC 3490) decoder, such that a crafted, unreasonably long name being presented to the decoder could lead to a CPU denial of service. Hostnames are often supplied by remote servers that could be controlled by a malicious actor; in such a scenario, they could trigger excessive CPU consumption on the client attempting to make use of an attacker-supplied supposed hostname. For example, the attack payload could be placed in the Location header of an HTTP response with status code 302. A fix is planned in 3.11.1, 3.10.9, 3.9.16, 3.8.16, and 3.7.16.
📍 영향받는 시스템
Python 3.11.1 미만 버전 (3.11.0, 3.10.x, 3.9.x, 3.8.x, 3.7.x 포함)
⚔️ 공격 벡터
HTTP 응답의 Location 헤더 등에 조작된 긴 호스트 이름을 포함시켜 클라이언트의 CPU를 고갈시킴
🛡️ 대응 방법
Python을 최신 보안 패치 버전(3.11.1, 3.10.9, 3.9.16, 3.8.16, 3.7.16 이상)으로 업데이트
🔧 검증 코드
출력된 버전이 취약점이 해결된 버전(예: 3.11.1 이상)인지 확인