🔍 CVE-2026-53539

7.5
CVSS Score
HIGH
2026-06-22
2026-10-25 23:10
✅ 완료

🇰🇷 한글 설명

Python-Multipart 0.0.30 미만 버전에서 application/x-www-form-urlencoded 본문을 파싱할 때 발생하는 CPU 자원 고갈 취약점입니다. 세미콜론(;)을 구분자로 사용하고 앰퍼샌드(&)가 없는 특정 형태의 요청을 보내면, 파서가 매 필드마다 전체 버퍼를 반복 스캔하여 O(B^2)의 시간 복잡도를 유발합니다. 이로 인해 공격자는 적은 수의 요청만으로도 서버의 CPU를 점유하고 워커 프로세스를 고갈시킬 수 있습니다.

💡 쉬운 설명

특수하게 조작된 데이터를 보내면 서버가 데이터를 읽는 데 너무 많은 계산을 하게 만들어 서버를 느리게 하거나 멈추게 만드는 공격입니다. 마치 책의 모든 페이지를 한 글자씩 다 읽어야만 다음 문장을 찾을 수 있게 만들어 시간을 낭비하게 하는 것과 같습니다.

🇺🇸 원문 (English)

Python-Multipart is a streaming multipart parser for Python. Prior to 0.0.30, when parsing application/x-www-form-urlencoded bodies, QuerystringParser located the field separator with a two step lookup: it first scanned the entire remaining buffer for &, and only when no & existed anywhere ahead did it fall back to scanning for ;. For a body that uses ; as the separator and contains no &, every field iteration performed a full failed & scan over the entire remaining buffer before locating the nearby ;. With N semicolon separated fields in a chunk of size B, this yields O(B^2) byte comparisons per chunk. An attacker can submit a small crafted body of the form a;a;a;... and cause the parser to spend seconds of CPU per request. A handful of concurrent requests can exhaust worker processes. This vulnerability is fixed in 0.0.30.

📍 영향받는 시스템

Python-Multipart versions prior to 0.0.30

⚔️ 공격 벡터

세미콜론(;)으로 구분되고 앰퍼샌드(&)가 포함되지 않은 정교하게 조작된 HTTP 요청 본문 전송

🛡️ 대응 방법

Python-Multipart 라이브러리를 0.0.30 버전 이상으로 업데이트

🔧 검증 코드

출력된 버전이 0.0.30 미만이면 취약한 상태이며, 0.0.30 이상이면 안전합니다.

Shell / Script
pip show python-multipart | 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:H

💻 영향받는 소프트웨어

Python