<feed xmlns='http://www.w3.org/2005/Atom'>
<title>django.git, branch 4.2.30</title>
<subtitle>django
</subtitle>
<id>http://cgit.adnoto.dev/django.git/atom?h=4.2.30</id>
<link rel='self' href='http://cgit.adnoto.dev/django.git/atom?h=4.2.30'/>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/'/>
<updated>2026-04-07T11:46:16Z</updated>
<entry>
<title>[4.2.x] Bumped version for 4.2.30 release.</title>
<updated>2026-04-07T11:46:16Z</updated>
<author>
<name>Jacob Walls</name>
<email>jacobtylerwalls@gmail.com</email>
</author>
<published>2026-04-07T11:46:16Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=3396992e837d5146270ea8112bb622c83fa4a919'/>
<id>urn:sha1:3396992e837d5146270ea8112bb622c83fa4a919</id>
<content type='text'>
</content>
</entry>
<entry>
<title>[4.2.x] Fixed CVE-2026-33034 -- Enforced DATA_UPLOAD_MAX_MEMORY_SIZE on body size in ASGI requests.</title>
<updated>2026-04-07T11:43:51Z</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=ed4dfda62718a0bb644b80ac8b1d3099861f2295'/>
<id>urn:sha1:ed4dfda62718a0bb644b80ac8b1d3099861f2295</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.

Backport of 953c238058c0ce387a1a41cb491bfc1875d73ad0 from main.
</content>
</entry>
<entry>
<title>[4.2.x] Fixed CVE-2026-33033 -- Mitigated potential DoS in MultiPartParser.</title>
<updated>2026-04-07T11:42:38Z</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=f13c20f81b56108ac477213fa5ada2524b5e5c98'/>
<id>urn:sha1:f13c20f81b56108ac477213fa5ada2524b5e5c98</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.

Backport of 7e9885f99cee771b51692fadc5592bdbf19641aa from main.
</content>
</entry>
<entry>
<title>[4.2.x] Fixed CVE-2026-4292 -- Disallowed instance creation via ModelAdmin.list_editable.</title>
<updated>2026-04-07T11:42:18Z</updated>
<author>
<name>Jacob Walls</name>
<email>jacobtylerwalls@gmail.com</email>
</author>
<published>2026-03-16T22:05:22Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=abfe1a1c57a57cfaf6dd4a0571c029401a0fe743'/>
<id>urn:sha1:abfe1a1c57a57cfaf6dd4a0571c029401a0fe743</id>
<content type='text'>
Thanks Natalia Bidart, Jake Howard, and Markus Holtermann for reviews.

Backport of 6afe7ce93964f56e33a29d477c269436f9b60cbf from main.
</content>
</entry>
<entry>
<title>[4.2.x] Fixed CVE-2026-4277 -- Checked add permissions in GenericInlineModelAdmin.</title>
<updated>2026-04-07T11:41:45Z</updated>
<author>
<name>Jacob Walls</name>
<email>jacobtylerwalls@gmail.com</email>
</author>
<published>2026-03-12T15:00:05Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=051f3909e820360bbe84a21350e82f4961e3d917'/>
<id>urn:sha1:051f3909e820360bbe84a21350e82f4961e3d917</id>
<content type='text'>
Edit permissions were still checked as part of ordinary form validation,
but because GenericInlineModelAdmin overrides get_formset(), it lacked
InlineModelAdmin's dynamic DeleteProtectedModelForm.has_changed() logic
for checking permissions server-side, leaving the add case unaddressed.

This change reimplements the relevant part of InlineModelAdmin.get_formset().

Thanks N05ec@LZU-DSLab for the report, and Natalia Bidart,
Markus Holtermann, and Simon Charette for reviews.

Backport of ef8b25dcc06d158683a5623ce406d561638f4073 from main.
</content>
</entry>
<entry>
<title>[4.2.x] Fixed CVE-2026-3902 -- Ignored headers with underscores in ASGIRequest.</title>
<updated>2026-04-07T11:41:16Z</updated>
<author>
<name>Jacob Walls</name>
<email>jacobtylerwalls@gmail.com</email>
</author>
<published>2026-01-22T22:01:46Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=4412731aa64d62a6dd7edae79e0c15b72666d7ca'/>
<id>urn:sha1:4412731aa64d62a6dd7edae79e0c15b72666d7ca</id>
<content type='text'>
Thanks Tarek Nakkouch for the report and Jake Howard and Natalia Bidart
for reviews.

Backport of caf90a971f09323775ed0cacf94eadaf39d040e0 from main.
</content>
</entry>
<entry>
<title>[4.2.x] Added stub release notes and release date for 4.2.30.</title>
<updated>2026-03-31T16:32:54Z</updated>
<author>
<name>Jacob Walls</name>
<email>jacobtylerwalls@gmail.com</email>
</author>
<published>2026-03-27T20:13:25Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=8d2a05c35dafc71d21fc68a6eb81aa6cdd190270'/>
<id>urn:sha1:8d2a05c35dafc71d21fc68a6eb81aa6cdd190270</id>
<content type='text'>
Backport of dff1980d61b1129c82757f70117dcea68e69a8c8 from main.
</content>
</entry>
<entry>
<title>[4.2.x] Combined scripts confirm_release.sh and test_new_version.sh into verify_release.sh.</title>
<updated>2026-03-17T01:16:24Z</updated>
<author>
<name>Natalia</name>
<email>124304+nessita@users.noreply.github.com</email>
</author>
<published>2026-03-09T13:50:44Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=b1d9ea4ff3c8e8597a5ff6c686a681bbaf7240be'/>
<id>urn:sha1:b1d9ea4ff3c8e8597a5ff6c686a681bbaf7240be</id>
<content type='text'>
This reuses the same download for both artifacts and checks both GPG
signature and minimal correctness in the same script. Docs and script
do_django_release.py were updated.

Backport of 3abf89887993140d28676f26420ee0d46a617f51 from main.
</content>
</entry>
<entry>
<title>[4.2.x] Added CVE-2026-25673 and CVE-2026-25674 to security archive.</title>
<updated>2026-03-03T14:07:21Z</updated>
<author>
<name>Natalia</name>
<email>124304+nessita@users.noreply.github.com</email>
</author>
<published>2026-03-03T14:03:22Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=385678e529a6740a339d54a7a21ec623c826c22c'/>
<id>urn:sha1:385678e529a6740a339d54a7a21ec623c826c22c</id>
<content type='text'>
Backport of 62ab467686845e2a12a2580997a81d4bf61edfc6 from main.
</content>
</entry>
<entry>
<title>[4.2.x] Post-release version bump.</title>
<updated>2026-03-03T12:25:57Z</updated>
<author>
<name>Natalia</name>
<email>124304+nessita@users.noreply.github.com</email>
</author>
<published>2026-03-03T12:25:57Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=69de8468834358cb92ce2971c356a64dab8709b8'/>
<id>urn:sha1:69de8468834358cb92ce2971c356a64dab8709b8</id>
<content type='text'>
</content>
</entry>
</feed>
