<feed xmlns='http://www.w3.org/2005/Atom'>
<title>django.git/django/http/multipartparser.py, branch main</title>
<subtitle>django
</subtitle>
<id>http://cgit.adnoto.dev/django.git/atom?h=main</id>
<link rel='self' href='http://cgit.adnoto.dev/django.git/atom?h=main'/>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/'/>
<updated>2026-04-07T11:12:23Z</updated>
<entry>
<title>Fixed CVE-2026-33033 -- Mitigated potential DoS in MultiPartParser.</title>
<updated>2026-04-07T11:12:23Z</updated>
<author>
<name>Natalia</name>
<email>124304+nessita@users.noreply.github.com</email>
</author>
<published>2026-03-05T17:41:44Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=7e9885f99cee771b51692fadc5592bdbf19641aa'/>
<id>urn:sha1:7e9885f99cee771b51692fadc5592bdbf19641aa</id>
<content type='text'>
When a multipart file part used `Content-Transfer-Encoding: base64` and
the non-whitespace base64 bytes did not align to a multiple of 4 within
a chunk, the parser entered a loop calling `field_stream.read(1-3)` once
per whitespace byte. Each such call fetched the entire internal buffer,
sliced off 1-3 bytes, and pushed the remainder back via unget(), doing
an O(n) memory copy per call. A 2.5 MB payload of mostly whitespace
produced CPU amplification relative to a normal upload of the same size.

The alignment loop now reads `self._chunk_size` bytes at a time, and
accumulates stripped parts in a list joined once at the end.

Thanks to Seokchan Yoon for the report and the fixing patch.
</content>
</entry>
<entry>
<title>Fixed #36931 -- Handled LookupError in multipart parser for invalid RFC 2231 encoding.</title>
<updated>2026-02-24T18:44:42Z</updated>
<author>
<name>sammiee5311</name>
<email>sammiee5311@gmail.com</email>
</author>
<published>2026-02-16T03:21:03Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=e84dc8715e91d51364ba6bda2b2fb07e7a8b750e'/>
<id>urn:sha1:e84dc8715e91d51364ba6bda2b2fb07e7a8b750e</id>
<content type='text'>
Added LookupError to the except clause so invalid headers are silently
skipped, consistent with other malformed header handling.
</content>
</entry>
<entry>
<title>Refs #36520 -- Ensured only the header value is passed to parse_header_parameters for multipart requests.</title>
<updated>2025-08-28T17:25:36Z</updated>
<author>
<name>Jake Howard</name>
<email>git@theorangeone.net</email>
</author>
<published>2025-08-20T15:04:48Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=41ff30f6f9d072036be1f74db8f0c8b21565299f'/>
<id>urn:sha1:41ff30f6f9d072036be1f74db8f0c8b21565299f</id>
<content type='text'>
Header parsing should apply only to the header value. The previous
implementation happened to work but relied on unintended behavior.
</content>
</entry>
<entry>
<title>Refs #36500 -- Rewrapped long docstrings and block comments via a script.</title>
<updated>2025-07-23T23:17:55Z</updated>
<author>
<name>django-bot</name>
<email>ops@djangoproject.com</email>
</author>
<published>2025-07-23T03:41:41Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=69a93a88edb56ba47f624dac7a21aacc47ea474f'/>
<id>urn:sha1:69a93a88edb56ba47f624dac7a21aacc47ea474f</id>
<content type='text'>
Rewrapped long docstrings and block comments to 79 characters + newline
using script from https://github.com/medmunds/autofix-w505.
</content>
</entry>
<entry>
<title>Refs #36500 -- Shortened some long docstrings and comments.</title>
<updated>2025-07-23T23:17:55Z</updated>
<author>
<name>Mike Edmunds</name>
<email>medmunds@gmail.com</email>
</author>
<published>2025-07-23T03:40:48Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=55b0cc21310b76ce4018dd793ba50556eaf0af06'/>
<id>urn:sha1:55b0cc21310b76ce4018dd793ba50556eaf0af06</id>
<content type='text'>
Manually reformatted some long docstrings and comments that would be
damaged by the to-be-applied autofixer script, in cases where editorial
judgment seemed necessary for style or wording changes.
</content>
</entry>
<entry>
<title>Refs #28909 -- Simplified code using unpacking generalizations.</title>
<updated>2025-04-01T01:43:13Z</updated>
<author>
<name>Aarni Koskela</name>
<email>akx@iki.fi</email>
</author>
<published>2025-03-05T16:45:10Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=c972af69e2021b75b89d8bc47e214ef875bbdc06'/>
<id>urn:sha1:c972af69e2021b75b89d8bc47e214ef875bbdc06</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Applied Black's 2024 stable style.</title>
<updated>2024-01-26T11:45:07Z</updated>
<author>
<name>Mariusz Felisiak</name>
<email>felisiak.mariusz@gmail.com</email>
</author>
<published>2024-01-26T11:45:07Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=305757aec19c9d5111e4d76095ae0acd66163e4b'/>
<id>urn:sha1:305757aec19c9d5111e4d76095ae0acd66163e4b</id>
<content type='text'>
https://github.com/psf/black/releases/tag/24.1.0</content>
</entry>
<entry>
<title>Fixed #34968 -- Made multipart parsing of headers raise an error on too long headers.</title>
<updated>2023-11-24T11:06:54Z</updated>
<author>
<name>Standa Opichal</name>
<email>stanislav.opichal@rossum.ai</email>
</author>
<published>2023-11-10T16:40:24Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=1c6e8ec4ed6d9c374161eda965160e4782c7d71e'/>
<id>urn:sha1:1c6e8ec4ed6d9c374161eda965160e4782c7d71e</id>
<content type='text'>
This also allow customizing the maximum size of headers via
MAX_TOTAL_HEADER_SIZE.
</content>
</entry>
<entry>
<title>Fixed CVE-2023-24580 -- Prevented DoS with too many uploaded files.</title>
<updated>2023-02-14T07:18:40Z</updated>
<author>
<name>Markus Holtermann</name>
<email>info@markusholtermann.eu</email>
</author>
<published>2022-12-13T09:27:39Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=85ac33591c393f1480d4f23b4daff40119cb6410'/>
<id>urn:sha1:85ac33591c393f1480d4f23b4daff40119cb6410</id>
<content type='text'>
Thanks to Jakob Ackermann for the report.
</content>
</entry>
<entry>
<title>Updated documentation and comments for RFC updates.</title>
<updated>2022-11-10T12:52:17Z</updated>
<author>
<name>Nick Pope</name>
<email>nick@nickpope.me.uk</email>
</author>
<published>2022-11-04T12:33:09Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=9bd174b9a75299dce33e673a559f2b673399b971'/>
<id>urn:sha1:9bd174b9a75299dce33e673a559f2b673399b971</id>
<content type='text'>
- Updated references to RFC 1123 to RFC 5322
  - Only partial as RFC 5322 sort of sub-references RFC 1123.
- Updated references to RFC 2388 to RFC 7578
  - Except RFC 2388 Section 5.3 which has no equivalent.
- Updated references to RFC 2396 to RFC 3986
- Updated references to RFC 2616 to RFC 9110
- Updated references to RFC 3066 to RFC 5646
- Updated references to RFC 7230 to RFC 9112
- Updated references to RFC 7231 to RFC 9110
- Updated references to RFC 7232 to RFC 9110
- Updated references to RFC 7234 to RFC 9111
- Tidied up style of text when referring to RFC documents
</content>
</entry>
</feed>
