🇰🇷 한글 설명
Python-Multipart 0.0.30 미만 버전에서 QuerystringParser가 세미콜론(;)을 필드 구분자로 잘못 처리하는 취약점이 발견되었습니다. 이로 인해 표준을 따르는 상위 검사 장치와 파서 간의 데이터 해석 차이가 발생하여, 공격자가 검사를 우회하는 추가 폼 필드를 은닉(Smuggling)할 수 있습니다.
💡 쉬운 설명
데이터를 나누는 기준이 표준과 달라 발생하는 문제입니다. 공격자가 특수 기호를 이용해 보안 검사기를 속이고 숨겨진 데이터를 몰래 보낼 수 있습니다.
🇺🇸 원문 (English)
Python-Multipart is a streaming multipart parser for Python. Prior to 0.0.30, QuerystringParser treated ; as a field separator in application/x-www-form-urlencoded bodies, in addition to &. The WHATWG URL standard, modern browsers, and Python's urllib.parse (since the CVE-2021-23336 fix) treat only & as a separator. This creates a parser differential: the same bytes are tokenized into different fields than a WHATWG compliant intermediary would produce, allowing an attacker to smuggle extra form fields past an upstream body inspecting component. This vulnerability is fixed in 0.0.30.
📍 영향받는 시스템
Python-Multipart 버전 0.0.30 미만
⚔️ 공격 벡터
application/x-www-form-urlencoded 본문에 세미콜론(;)을 포함하여 보안 검사기를 우회하는 데이터 은닉 공격
🛡️ 대응 방법
Python-Multipart 라이브러리를 0.0.30 이상 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 버전 번호가 0.0.30 미만인지 확인하십시오.
pip show python-multipart | grep Version