blob: de19a6f08fa78def850c8352e2e88add955323e4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
===========================
Django 4.2.30 release notes
===========================
*April 7, 2026*
Django 4.2.30 fixes one security issue with severity "moderate" and four
security issues with severity "low" in 4.2.29.
CVE-2026-3902: ASGI header spoofing via underscore/hyphen conflation
====================================================================
``ASGIRequest`` normalizes header names following WSGI conventions, mapping
hyphens to underscores. As a result, even in configurations where reverse
proxies carefully strip security-sensitive headers named with hyphens, such a
header could be spoofed by supplying a header named with underscores.
Under WSGI, it is the responsibility of the server or proxy to avoid ambiguous
mappings. (Django's :djadmin:`runserver` was patched in :cve:`2015-0219`.) But
under ASGI, there is not the same uniform expectation, even if many proxies
protect against this under default configuration (including ``nginx`` via
``underscores_in_headers off;``).
Headers containing underscores are now ignored by ``ASGIRequest``, matching the
behavior of :pypi:`Daphne <daphne>`, the reference server for ASGI.
This issue has severity "low" according to the :ref:`Django security policy
<security-disclosure>`.
CVE-2026-4277: Privilege abuse in ``GenericInlineModelAdmin``
=============================================================
Add permissions on inline model instances were not validated on submission of
forged ``POST`` data in
:class:`~django.contrib.contenttypes.admin.GenericInlineModelAdmin`.
This issue has severity "low" according to the :ref:`Django security policy
<security-disclosure>`.
CVE-2026-4292: Privilege abuse in ``ModelAdmin.list_editable``
==============================================================
Admin changelist forms using
:attr:`~django.contrib.admin.ModelAdmin.list_editable` incorrectly allowed new
instances to be created via forged ``POST`` data.
This issue has severity "low" according to the :ref:`Django security policy
<security-disclosure>`.
|