<feed xmlns='http://www.w3.org/2005/Atom'>
<title>django.git/django/http, 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-22T18:25:08Z</updated>
<entry>
<title>Fixed #36991 -- Raised BadRequest for invalid encodings in Content-Type headers.</title>
<updated>2026-04-22T18:25:08Z</updated>
<author>
<name>Dinesh</name>
<email>dineshthumma15@gmail.com</email>
</author>
<published>2026-03-21T17:21:11Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=dc467fdc3b5744cec71fab876c23a14013e2510b'/>
<id>urn:sha1:dc467fdc3b5744cec71fab876c23a14013e2510b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fixed CVE-2026-33034 -- Enforced DATA_UPLOAD_MAX_MEMORY_SIZE on body size in ASGI requests.</title>
<updated>2026-04-07T11:12:27Z</updated>
<author>
<name>Natalia</name>
<email>124304+nessita@users.noreply.github.com</email>
</author>
<published>2026-03-11T13:26:18Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=953c238058c0ce387a1a41cb491bfc1875d73ad0'/>
<id>urn:sha1:953c238058c0ce387a1a41cb491bfc1875d73ad0</id>
<content type='text'>
The `body` property in `HttpRequest` checks DATA_UPLOAD_MAX_MEMORY_SIZE
against the declared `Content-Length` header before reading. On the ASGI
path, chunked requests carry no `Content-Length`, so the check evaluated
to 0 and always passed regardless of the actual body size.

This work adds a new check on the actual number of bytes consumed.

Thanks to Superior for the report, and to Jake Howard and Jacob Walls
for reviews.
</content>
</entry>
<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>Fixed #36841 -- Made multipart parser class pluggable on HttpRequest.</title>
<updated>2026-02-10T22:59:02Z</updated>
<author>
<name>farhan</name>
<email>farhanalirazaazeemi@gmail.com</email>
</author>
<published>2026-01-05T19:34:39Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=7732f942a98a709750fc1fed2c69741183844a3c'/>
<id>urn:sha1:7732f942a98a709750fc1fed2c69741183844a3c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fixed #36743 -- Increased URL max length enforced in HttpResponseRedirectBase.</title>
<updated>2025-11-26T20:17:46Z</updated>
<author>
<name>varunkasyap</name>
<email>varunkasyap@hotmail.com</email>
</author>
<published>2025-11-26T17:28:24Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=a8cf8c292cfee98fe6cc873ca5221935f1d02271'/>
<id>urn:sha1:a8cf8c292cfee98fe6cc873ca5221935f1d02271</id>
<content type='text'>
Refs CVE-2025-64458.

The previous limit of 2048 characters reused the URLValidator constant
and proved too restrictive for legitimate redirects to some third-party
services. This change introduces a separate `MAX_URL_REDIRECT_LENGTH`
constant (defaulting to 16384) and uses it in HttpResponseRedirectBase.

Thanks Jacob Walls for report and review.
</content>
</entry>
<entry>
<title>Fixed CVE-2025-64458 -- Mitigated potential DoS in HttpResponseRedirect/HttpResponsePermanentRedirect on Windows.</title>
<updated>2025-11-05T12:20:57Z</updated>
<author>
<name>Jacob Walls</name>
<email>jacobtylerwalls@gmail.com</email>
</author>
<published>2025-10-16T20:28:33Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=c880530ddd4fabd5939bab0e148bebe36699432a'/>
<id>urn:sha1:c880530ddd4fabd5939bab0e148bebe36699432a</id>
<content type='text'>
Thanks Seokchan Yoon for the report, Markus Holtermann for the
triage, and Jake Howard for the review.

Follow-up to CVE-2025-27556 and 39e2297210d9d2938c75fc911d45f0e863dc4821.
</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>
</feed>
