🔍 CVE-2020-10735

7.5
CVSS Score
HIGH
2022-09-09
2026-10-14 09:17
✅ 완료

🇰🇷 한글 설명

Python의 int() 함수에서 비이진 기수를 사용하는 경우, 매우 긴 숫자를 문자열로 변환할 때 이차 시간 복잡도가 발생하여 CPU 자원을 과도하게 소모하는 결함이 발견되었습니다. 이로 인해 시스템의 가용성이 저해될 수 있습니다.

💡 쉬운 설명

매우 긴 숫자를 컴퓨터가 읽을 때 처리 시간이 기하급수적으로 늘어나는 문제입니다. 공격자가 아주 긴 숫자 문자열을 보내면 컴퓨터가 계산하느라 멈춰버릴 수 있습니다.

🇺🇸 원문 (English)

A flaw was found in python. In algorithms with quadratic time complexity using non-binary bases, when using int("text"), a system could take 50ms to parse an int string with 100,000 digits and 5s for 1,000,000 digits (float, decimal, int.from_bytes(), and int() for binary bases 2, 4, 8, 16, and 32 are not affected). The highest threat from this vulnerability is to system availability.

📍 영향받는 시스템

Python (int() 함수를 사용하여 매우 긴 문자열을 정수로 변환하는 모든 버전)

⚔️ 공격 벡터

공격자가 서비스에 매우 긴 숫자 형태의 문자열 데이터를 입력하여 CPU 자원을 고갈시키는 DoS(서비스 거부) 공격

🛡️ 대응 방법

Python을 최신 보안 패치가 적용된 버전으로 업데이트하거나, 입력되는 문자열의 길이를 제한하는 로직을 추가합니다.

🔧 검증 코드

출력된 Python 버전을 확인하여 해당 취약점이 해결된 패치 버전인지 보안 권고안과 대조합니다.

Shell / Script
python3 --version

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Python