Python-Multipart to parser strumieni multipart dla Pythona. Przed wersją 0.0.30 funkcja parse_options_header analizowała nagłówki Content-Disposition i Content-Type przy użyciu email.message.Message, która automatycznie stosuje dekodowanie RFC 2231/5987. Rozszerzona składnia parametrów (filename*=charset'lang'value, name*=... i forma kontynuacji filename*0/filename*1) jest dekodowana i ujawniana pod zwykłą nazwą klucza filename/name, zastępując zwykły parametr gdy oba są obecne. RFC 7578 §4.2 wyraźnie zabrania formularza filename* w multipart/form-data. Komponenty zgodne z RFC 7578 lub nieimplementujące dekodowania RFC 2231/5987 dla multipart/form-data (WAF, proxy, gateway) mogą interpretować taki nagłówek inaczej. Atakujący może wyzyskać tę różnicę do smugglowania innej nazwy pola lub nazwy pliku obok inspektora upstream do backendu. Podatność została naprawiona w wersji 0.0.30.
▸ Pokaż oryginał (EN)
Python-Multipart is a streaming multipart parser for Python. Prior to 0.0.30, parse_options_header parsed Content-Disposition (and Content-Type) headers with email.message.Message, which transparently applies RFC 2231/5987 decoding. The extended parameter syntax (filename*=charset'lang'value, name*=..., and the filename*0/filename*1 continuation form) is decoded and surfaced under the bare filename/name key, and overrides the plain parameter when both are present. RFC 7578 §4.2 explicitly forbids the filename* form in multipart/form-data. Components that follow RFC 7578, or that do not implement RFC 2231/5987 decoding for multipart/form-data (WAFs, proxies, gateways), may interpret such a header differently. An attacker can exploit that difference to smuggle a different field name or filename past an upstream inspector to the backend. This vulnerability is fixed in 0.0.30.
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:NFastapiexpert Python Multipart
APPFastapiexpert< 0.0.30
Powiązane podatności
Python-Multipart is a streaming multipart parser for Python. Prior to 0.0.30, when parsing application/x-www-f...
Python-Multipart is a streaming multipart parser for Python. Prior to version 0.0.22, a Path Traversal vulnera...
`python-multipart` is a streaming multipart parser for Python. When using form data, `python-multipart` uses a...
Python-Multipart to parser streamingowy multipart dla Pythona. Wersje wcześniejsze niż 0.0.26 mają podatność D...
Python-Multipart to parser streamingowy dla multipart w Pythonie. Przed wersją 0.0.30 QuerystringParser trakto...