🔍 CVE-2026-45409

5.3
CVSS Score
MEDIUM
2026-06-05
2026-07-23 07:10
✅ 완료

🇰🇷 한글 설명

Python의 IDNA 라이브러리 3.15 미만 버전에서 특정 유니코드 페이로드를 처리할 때 리소스를 과도하게 소모하는 취약점이 발견되었습니다. 공격자가 `idna.encode()` 함수에 매우 긴 인자를 전달할 경우 처리 시간이 급증하여 서비스 거부(DoS) 상태를 유발할 수 있습니다.

💡 쉬운 설명

특정한 긴 글자를 입력하면 컴퓨터가 이를 처리하느라 너무 많은 힘을 써서 시스템이 멈추거나 느려질 수 있는 문제입니다. 아주 긴 도메인 이름을 입력하여 서버를 마비시키는 공격이 가능합니다.

🇺🇸 원문 (English)

Internationalized Domain Names in Applications (IDNA) for Python provides support for Internationalized Domain Names in Applications (IDNA) and Unicode IDNA Compatibility Processing. In versions prior to 3.15, payloads such as `"\u0660" * N` or `"\u30fb" * N + "\u6f22"` utilize the `valid_contexto` function prior to length rejection, and for high values of `N` will take a long time to process. This is the same issue as CVE-2024-3651, however the original remediation in 2024 was not a complete fix. A specially crafted argument to the `idna.encode()` function could consume significant resources. This may lead to a denial-of-service. Starting in version 3.14, the function rejects long inputs as soon as practicable prior to any further processing to minimize resource consumption. In version 3.15, this approach was extended to lesser used alternate functions (i.e. per-label conversions and codec support). A workaround is available. Domain names cannot exceed 253 characters in length. If this length limit is enforced prior to passing the domain to the `idna.encode()` function, it should no longer consume significant resources. This is triggered by arbitrarily large inputs that would not occur in normal usage, but may be passed to the library assuming there is no preliminary input validation by the higher-level application.

📍 영향받는 시스템

Python IDNA library versions prior to 3.15

⚔️ 공격 벡터

idna.encode() 함수에 검증되지 않은 매우 긴 유니코드 문자열을 입력값으로 전달

🛡️ 대응 방법

IDNA 라이브러리를 3.15 버전 이상으로 업데이트하거나, 입력값의 길이를 253자로 제한하는 유효성 검사를 선행 적용

🔧 검증 코드

출력된 버전이 3.15 미만인 경우 해당 취약점에 노출된 상태입니다.

Shell / Script
pip show idna | grep Version

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L

💻 영향받는 소프트웨어

Python