1
0
mirror of https://github.com/django/django.git synced 2025-10-09 06:49:12 +00:00

20099 Commits

Author SHA1 Message Date
Jacob Walls
3cff3209e3 [5.2.x] Bumped version for 5.2.7 release. 2025-10-01 08:26:54 -04:00
Sarah Boyce
ed8fc39d77 [5.2.x] Fixed CVE-2025-59682 -- Fixed potential partial directory-traversal via archive.extract().
Thanks stackered for the report.

Follow up to 05413afa8c18cdb978fcdf470e09f7a12b234a23.

Backport of 924a0c092e65fa2d0953fd1855d2dc8786d94de2 from main.
2025-10-01 08:25:20 -04:00
Mariusz Felisiak
52fbae0a4d [5.2.x] Fixed CVE-2025-59681 -- Protected QuerySet.annotate(), alias(), aggregate(), and extra() against SQL injection in column aliases on MySQL/MariaDB.
Thanks sw0rd1ight for the report.

Follow up to 93cae5cb2f9a4ef1514cf1a41f714fef08005200.

Backport of 41b43c74bda19753c757036673ea9db74acf494a from main.
2025-10-01 08:24:18 -04:00
Natalia
2a2936c3e6 [5.2.x] Updated translations from Transifex. 2025-09-18 09:50:46 -03:00
antoliny0919
d8e9dec1ad [5.2.x] Fixed #36601 -- Fixed color contrast of FilteredSelectMultiple widget chosen labels in TabularInlines.
Regression in a0f50c2a483678d31bd1ad6f08fd3a0b8399e27b.

Backport of 1e7728888dbbff437ad9847c82b84feb81f785df from main.
2025-09-17 10:01:37 +02:00
Sarah Boyce
90a9ba1aec [5.2.x] Post-release version bump. 2025-09-03 13:29:20 +02:00
Sarah Boyce
75c4403f07 [5.2.x] Bumped version for 5.2.6 release. 2025-09-03 13:17:48 +02:00
Jake Howard
4c044fcc86 [5.2.x] Fixed CVE-2025-57833 -- Protected FilteredRelation against SQL injection in column aliases.
Thanks Eyal Gabay (EyalSec) for the report.

Backport of 51711717098d3f469f795dfa6bc3758b24f69ef7 from main.
2025-09-03 13:15:55 +02:00
SaJH
ace59cb83b [5.2.x] Fixed #36431 -- Returned tuples for multi-column ForeignObject in values()/values_list().
Thanks Jacob Walls and Simon Charette for tests.

Signed-off-by: SaJH <wogur981208@gmail.com>

Backport of bb7a7701b1a0e8fffe14dcebf5d5bac7f176c02a from main
2025-08-29 15:36:09 -04:00
Mariusz Felisiak
9c9ed6fd7a [5.2.x] Refs #35530 -- Corrected deprecation message in auth.alogin().
Follow up to ceecd518b19044181a3598c55ebed7c2545963cc.

Backport of b3166e1e15824aedb7a609dfda18ef36ea023d06 from main.
2025-08-22 16:15:42 +02:00
Sarah Boyce
a7546c4773 [5.2.x] Post-release version bump. 2025-08-06 10:35:14 +02:00
Sarah Boyce
a3b1107a49 [5.2.x] Bumped version for 5.2.5 release. 2025-08-06 10:04:41 +02:00
jkhall81
bdc3f9e350 [5.2.x] Fixed #36530 -- Extended fields.E347 to check for ManyToManyField involving CompositePrimaryKey on either side.
Thanks to Jacob Walls for the report.

Backport of 2013092b693be0ebdf36f41dc61615a2de1bbe31 from main.
2025-08-05 08:46:56 -03:00
Natalia
f01ceae477 [5.2.x] Fixed #36535 -- Ensured compatibility with docutils 0.19 through 0.22.
Regression in 65ab92f6a83644bbb555d0eff3a02d8d9301aba4.

Backport of 9cec8d9f55d90fbc162fde23d6ea7a34e322fcae from main.
2025-08-04 21:53:33 -03:00
Simon Charette
b3bb7230e1 [5.2.x] Fixed #34871, #36518 -- Implemented unresolved lookups expression replacement.
This allows the proper resolving of lookups when performing constraint
validation involving Q and Case objects.

Thanks Andrew Roberts for the report and Sarah for the tests and review.

Backport of 079d31e698fa08dd92e2bc4f3fe9b4817a214419 from main.
2025-08-04 09:42:32 +02:00
Simon Charette
e5ccb69bc3 [5.2.x] Fixed #36198 -- Implemented unresolved transform expression replacement.
This allows the proper resolving of F("field__transform") when
performing constraint validation.

Thanks Tom Hall for the report and Sarah for the test.

Prerequisite for #36518.

Backport of fc303551077c3e023fe4f9d01fc1b3026c816fa4 from main.
2025-08-04 09:41:29 +02:00
Mariusz Felisiak
5aefd005fc [5.2.x] Fixed writer_name deprecation warning in docutils 0.22+.
Backport of 65ab92f6a83644bbb555d0eff3a02d8d9301aba4 from main.
2025-07-29 21:50:54 -03:00
Simon Charette
3031c512f0 [5.2.x] Fixed #36522 -- Added support for filtering composite pks using a tuple of expressions.
Thanks Jacob Walls for the report, and Sarah Boyce and Mariusz Felisiak
for reviews.

Backport of 0a4999b422702c64e21f5a10a4d60300b7074401 from main.
2025-07-28 16:40:08 -03:00
Natalia
a76587531b [5.2.x] Added SimpleTestCase.enterContext() on Python < 3.11.
This reverts commit 47a618d45c6e40dd59f4cdd46fd5fc7d11626f6d and uses
a solution similar to ed4f83782d9f3404ad600f6131ef78244ff1e162 instead.
2025-07-16 18:11:53 -03:00
Simon Charette
3df1ad57bf [5.2.x] Fixed #36502 -- Restored UNNEST strategy for foreign key bulk inserts on PostgreSQL.
Regression in 764af7a3d6c0b543dcf659a2c327f214da768fe4.

Backport of 0fe218842e0e396e3ab3982bd21227968a9e7fd8 from main.
2025-07-10 18:36:01 +02:00
Natalia
1a5c75d8cd [5.2.x] Post-release version bump. 2025-07-02 15:44:20 -03:00
Natalia
c941d0deec [5.2.x] Bumped version for 5.2.4 release. 2025-07-02 15:42:00 -03:00
Simon Charette
a150160c9f [5.2.x] Fixed #36464 -- Fixed "__in" tuple lookup on backends lacking native support.
When native support for tuple lookups is missing in a DB backend, it can
be emulated with an EXISTS clause. This is controlled by the backend
feature flag "supports_tuple_lookups".

The mishandling of subquery right-hand side in `TupleIn` (added to
support `CompositePrimaryKey` in Refs #373) was likely missed because
the only core backend we test with the feature flag disabled
(Oracle < 23.4) supports it natively.

Thanks to Nandana Raol for the report, and to Sarah Boyce, Jacob Walls,
and Natalia Bidart for reviews.

Backport of 192bc7a7be92e20cc250907fb4083df689715679 from main.
2025-06-30 20:16:08 -03:00
Clifford Gama
1d89691c74 [5.2.x] Fixed #36453 -- Made When.condition resolve with for_save=False.
Value(None, JSONField()) when used in When.condition incorrectly resolved with
for_save=True, resulting in the value being serialized as SQL NULL instead of
JSON null.

Regression in c1fa3fdd040718356e5a3b9a0fe699d73f47a940.

Thanks to Thomas McKay for the report, and to David Sanders and Simon Charettes
for the review.

Co-authored-by: Sarah Boyce <42296566+sarahboyce@users.noreply.github.com>

Backport of 104cbfd44b9eff010daf0ef0e1ce434385855b13 from main.
2025-06-16 10:41:24 +02:00
Jake Howard
4de4edf2c0 [5.2.x] Fixed #36447 -- Selected preferred media type based on quality.
When matching which entry in the `Accept` header should be used for
a given media type, the specificity matters. However once those are
resolved, only the quality matters when selecting preference.

Regression in c075508b4de8edf9db553b409f8a8ed2f26ecead.

Thank you to Anders Kaseorg for the report.

Backport of 12c1557060fc94fe5e1fbddc4578a4e29d38f77c from main.
2025-06-16 09:27:46 +02:00
Sarah Boyce
6979ee39ae [5.2.x] Post-release version bump. 2025-06-10 11:47:04 +02:00
Sarah Boyce
15883bc669 [5.2.x] Bumped version for 5.2.3 release. 2025-06-10 11:34:02 +02:00
Natalia
cc5079730a [5.2.x] Fixed #36446 -- Restored "q" in internal MediaType.params property.
The "q" key was removed while addressing ticket #36411. Despite
`MediaType.params` is undocumented and considered internal, it was used
in third-party projects (Zulip reported breakage), so this work restored
the `q` key in `params`.

Thanks Anders Kaseorg for the report.

Regression in c075508b4de8edf9db553b409f8a8ed2f26ecead.

Backport of cf5f36bf903a2854f5e395149cee707115b83744 from main.
2025-06-09 17:39:25 -03:00
Clifford Gama
6fc620b4a8 [5.2.x] Fixed #36419 -- Ensured for_save was propagated when resolving expressions.
The for_save flag wasn't properly propagated when resolving expressions, which
prevented get_db_prep_save() from being called in some cases. This affected
fields like JSONField where None would be saved as JSON null instead of SQL NULL.

Regression in 00c690efbc0b10f67924687f24a7b30397bf47d9.

Thanks to David Sanders and Simon Charette for reviews.

Co-authored-by: Adam Johnson <me@adamj.eu>

Backport of c1fa3fdd040718356e5a3b9a0fe699d73f47a940 from main.
2025-06-06 17:41:51 +02:00
Jake Howard
8fcc83953c [5.2.x] Refs CVE-2025-48432 -- Prevented log injection in remaining response logging.
Migrated remaining response-related logging to use the `log_response()`
helper to avoid potential log injection, to ensure untrusted values like
request paths are safely escaped.

Co-authored-by: Natalia <124304+nessita@users.noreply.github.com>

Backport of 957951755259b412d5113333b32bf85871d29814 from main.
2025-06-06 09:07:12 -03:00
Natalia
9d7fc9eb1c [5.2.x] Refs CVE-2025-48432 -- Made SuspiciousOperation logging use log_response() for consistency.
Backport of ff835f439cb1ecd8d74a24de12e3c03e5477dc9d from main.
2025-06-06 09:07:06 -03:00
Sarah Boyce
5901cfe591 [5.2.x] Updated translations from Transifex. 2025-06-06 13:55:05 +02:00
Natalia
16892c92f5 [5.2.x] Post-release version bump. 2025-06-04 08:45:21 -03:00
Natalia
9e2fe65967 [5.2.x] Bumped version for 5.2.2 release. 2025-06-04 08:38:55 -03:00
Natalia
7456aa23da [5.2.x] Fixed CVE-2025-48432 -- Escaped formatting arguments in log_response().
Suitably crafted requests containing a CRLF sequence in the request
path may have allowed log injection, potentially corrupting log files,
obscuring other attacks, misleading log post-processing tools, or
forging log entries.

To mitigate this, all positional formatting arguments passed to the
logger are now escaped using "unicode_escape" encoding.

Thanks to Seokchan Yoon (https://ch4n3.kr/) for the report.

Co-authored-by: Carlton Gibson <carlton@noumenal.es>
Co-authored-by: Jake Howard <git@theorangeone.net>

Backport of a07ebec5591e233d8bbb38b7d63f35c5479eef0e from main.
2025-06-04 08:34:51 -03:00
Simon Charette
3340d41446 [5.2.x] Fixed #36432 -- Fixed a prefetch_related crash on related target subclass queryset.
Regression in 626d77e52a3f247358514bcf51c761283968099c.

Refs #36116.

Thanks Cornelis Poppema for the excellent report.

Backport of 08187c94ed02c45ad40a32244dedeaa7ac71ca87 from main.
2025-06-04 10:48:13 +02:00
Jake Howard
0c548e62d0 [5.2.x] Fixed #36411 -- Made HttpRequest.get_preferred_type() consider media type parameters.
HttpRequest.get_preferred_type() did not account for parameters in
Accept header media types (e.g., "text/vcard; version=3.0"). This caused
incorrect content negotiation when multiple types differed only by
parameters, reducing specificity as per RFC 7231 section 5.3.2
(https://datatracker.ietf.org/doc/html/rfc7231.html#section-5.3.2).

This fix updates get_preferred_type() to treat media types with
parameters as distinct, allowing more precise and standards-compliant
matching.

Thanks to magicfelix for the report, and to David Sanders and Sarah
Boyce for the reviews.

Backport of c075508b4de8edf9db553b409f8a8ed2f26ecead from main.
2025-06-03 16:11:38 -03:00
Jacob Walls
2bf4c5b9ea [5.2.x] Fixed #36416 -- Made QuerySet.in_bulk() account for composite pks in id_list.
Backport of 26313bc21932d0d3af278ab387549d63b1f64575 from main.
2025-06-03 17:46:59 +02:00
Blayze
37e5cc6d89 [5.2.x] Fixed #36423 -- Prevented filter_horizontal buttons from intercepting form submission.
In the admin's filter_horizontal widget, optional action buttons like
"Choose all", "Remove all", etc. were changed from `<a>` to `<button>`
elements in #34619, but without specifying `type="button"`. As a result,
when pressing Enter while focused on a form input, these buttons could
be triggered and intercept form submission.

Explicitly set `type="button"` on these control buttons to prevent them
from acting as submit buttons.

Thanks Antoliny Lee for the quick triage and review.

Regression in 857b1048d53ebf5fc5581c110e85c212b81ca83a.

Backport of 90429625a85f1f77dfea200c91bd2dabab57974f from main.
2025-06-02 22:26:36 -03:00
Adam Johnson
7e4b371eb0 [5.2.x] Fixed #36405 -- Fixed OrderableAggMixin.order_by using OuterRef.
co-authored-by: Simon Charette <charette.s@gmail.com>

Backport of c2615a050036eda0bca090c707191076220cee9f from main.
2025-05-23 16:23:34 +02:00
Adam Johnson
c29e3092fd [5.2.x] Fixed #36404 -- Fixed Aggregate.filter using OuterRef.
Regression in a76035e925ff4e6d8676c65cb135c74b993b1039.
Thank you to Simon Charette for the review.

co-authored-by: Simon Charette <charette.s@gmail.com>

Backport of b8e5a8a9a2a767f584cbe89a878a42363706f939 from main.
2025-05-23 15:19:50 +02:00
Sarah Boyce
9db932ab4c [5.2.x] Fixed #36390 -- Deprecated RemoteUserMiddleware subclasses missing aprocess_request().
Regression in 50f89ae850f6b4e35819fe725a08c7e579bfd099.
Thank you to shamoon for the report and Natalia Bidart for the review.

Backport of 1704c49a9b149b66b6a0e67abc8c95293bc35649 from main.
2025-05-23 10:24:09 +02:00
Colleen Dunlap
787f3130f7 [5.2.x] Fixed #36388 -- Made QuerySet.union() return self when called with no arguments.
Regression in 9cb8baa0c4fa2c10789c5c8b65f4465932d4d172.
Thank you to Antoine Humeau for the report and Simon Charette for the review.

Backport of 802baf5da5b8d8b44990a8214a43b951e7ab8b39 from main.
2025-05-19 10:36:08 +02:00
Jacob Walls
6228a35095 [5.2.x] Fixed #36392 -- Raised ValueError when subquery referencing composite pk selects too many columns.
Backport of 994dc6d8a1bae717baa236b65e11cf91ce181c53 from main.
2025-05-16 08:21:18 +02:00
Simon Charette
e23dd72880 [5.2.x] Fixed #36373 -- Fixed select_related() crash on foreign object for a composite pk.
Thanks Jacob Walls for the report and Sarah for the in-depth review.

Backport of 8be0c0d6901669661fca578f474cd51cd284d35a from main.
2025-05-12 13:34:45 +02:00
Natalia
13b71c9794 [5.2.x] Post-release version bump. 2025-05-06 22:30:31 -03:00
Natalia
bc833e8883 [5.2.x] Bumped version for 5.2.1 release. 2025-05-06 22:26:17 -03:00
Sarah Boyce
c9731dc656 [5.2.x] Fixed CVE-2025-32873 -- Mitigated potential DoS in strip_tags().
Thanks to Elias Myllymäki for the report, and Shai Berger and Jake
Howard for the reviews.

Co-authored-by: Natalia <124304+nessita@users.noreply.github.com>

Backport of 9f3419b519799d69f2aba70b9d25abe2e70d03e0 from main.
2025-05-06 22:24:24 -03:00
Baptiste Mispelon
1367a197dd [5.2.x] Fixed #36357 -- Skipped unique_together in inspectdb output for composite primary keys.
Thanks to Baptiste Mispelon for the report and quick fix, and to Simon
Charette and Jacob Walls for the reviews.

Co-authored-by: Natalia <124304+nessita@users.noreply.github.com>

Backport of 66f9eb0ff1e7147406318c5ba609729678e4e6f6 from main.
2025-04-30 11:55:56 -03:00
Simon Charette
ec73fd6746 [5.2.x] Fixed #36358 -- Corrected introspection of composite primary keys on SQLite.
Previously, any first field of a composite primary key with type
`INTEGER` was incorrectly introspected as an `AutoField` due to SQLite
treating `INTEGER PRIMARY KEY` as an alias for the `ROWID`.

This change ensures that integer fields in composite PKs are not
mistaken for auto-incrementing fields.

Thanks Jacob Walls and Sarah Boyce for the reviews.

Backport of 07100db6f46255ec6ef70b860495f977473684d6 from main.
2025-04-30 10:54:17 -03:00