HTTPX2 — это HTTP-клиент нового поколения для Python. До версии 2.11.0 FileField.render_headers() в src/httpx2/httpx2/_multipart.py напрямую интерполирует контролируемые злоумышленником значения content_type и пользовательские заголовки из трехэлементного кортежа files= (filename, content, content_type) и четырехэлементного кортежа files= (имя файла, контент, content_type, заголовки) в заголовки частей multipart/form-data без проверки имен или значений заголовков. Символы CR или LF могут завершать заголовок части, вводить дополнительные заголовки частей или досрочно завершать блок заголовка части, позволяя нижестоящему многочастному анализатору обрабатывать строки, предоставленные злоумышленником, как подлинные заголовки и потенциально изменять семантику частей или обходить проверки на основе заголовков.
Эта проблема исправлена в версии 2.11.0.
Показать оригинальное описание (EN)
HTTPX2 is a next generation HTTP client for Python. Prior to 2.11.0, FileField.render_headers() in src/httpx2/httpx2/_multipart.py directly interpolates attacker-controlled content_type values and custom headers from the files= three-element (filename, content, content_type) tuple and the files= four-element (filename, content, content_type, headers) tuple into multipart/form-data part headers without validating header names or values. CR or LF characters can terminate a part header, inject additional part headers, or end the part header block early, allowing a downstream multipart parser to treat attacker-supplied lines as genuine headers and potentially alter part semantics or bypass header-based checks. This issue is fixed in version 2.11.0.
Характеристики атаки
Последствия
Строка CVSS v3.1