| Age | Commit message (Collapse) | Author |
|
in XML serializer.
Previously, `getInnerText()` recursively used `list.extend()` on strings,
which added each character from child nodes as a separate list element.
On deeply nested XML content, this caused the overall deserialization
work to grow quadratically with input size, potentially allowing
disproportionate CPU consumption for crafted XML.
The fix separates collection of inner texts from joining them, so that
each subtree is joined only once, reducing the complexity to linear in
the size of the input. These changes also include a mitigation for a
xml.dom.minidom performance issue.
Thanks Seokchan Yoon (https://ch4n3.kr/) for report.
Co-authored-by: Jacob Walls <jacobtylerwalls@gmail.com>
Co-authored-by: Natalia <124304+nessita@users.noreply.github.com>
Backport of 50efb718b31333051bc2dcb06911b8fa1358c98c from main.
|
|
injection in column aliases on PostgreSQL.
Follow-up to CVE-2025-57833.
Thanks Stackered for the report, and Simon Charette and Mariusz Felisiak
for the reviews.
Backport of 5b90ca1e7591fa36fccf2d6dad67cf1477e6293e from main.
|
|
registration.
Ideally, this will be reverted when an upstream solution is available for
https://github.com/python/cpython/issues/141560.
Thanks Patrick Rauscher for the report and Augusto Pontes for the
first iteration and test.
Backport of 34186e731ca20a2344b1f88fd543a854d6b13a00 from main.
|
|
Co-authored-by: Rida Zouga <ridazouga@gmail.com>
Backport of 3ea0195ca57790d7bd6921ecaa32312eabec78d0 from main
|
|
Backport of 7b32485ee98edf7e8b94ad9c8acdccee562bf216 from main.
|
|
docs/howto/upgrade-version.txt.
Backport of bd7940982d6cab386dae7698ab097b91e5d8145e from main.
|
|
The fix landed in a8cf8c292cfee98fe6cc873ca5221935f1d02271 will be
backported to 5.1 and 4.2 since the 2048 limit was rolled out as part of
the security release for CVE-2025-64458.
Backport of 18b13cf6c48ff0a20b2a74d3b90d1fc1602608e4 from main.
|
|
HttpResponseRedirectBase.
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.
Backport of a8cf8c292cfee98fe6cc873ca5221935f1d02271 from main.
|
|
database casts.
Added warning in DateField documentation about type differences when using
timedelta on PostgreSQL and MySQL. Mentioned Cast() and integer arithmetic
solutions.
Backport of 55af4749b9a48b2978e893e7d7be313c0b2abdb1 from main.
|
|
Backport of d62e811acfc6a056e847bfcc460092a98511ed00 from main.
|
|
annotated queryset.
Regression in b8e5a8a9a2a767f584cbe89a878a42363706f939.
Refs #36404.
The replace_expressions method was innapropriately dealing with falsey
but not None source expressions causing them to also be potentially
evaluated when __bool__ was invoked (e.g. QuerySet.__bool__ evaluates
the queryset).
The changes introduced in b8e5a8a9a2, which were to deal with a similar
issue, surfaced the problem as aggregation over an annotated queryset
requires an inlining (or pushdown) of aggregate references which is
achieved through replace_expressions.
In cases where an empty Q object was provided as an aggregate filter,
such as when the admin facetting feature was used as reported, it would
wrongly be turned into None, instead of an empty WhereNode, causing a
crash at aggregate filter compilation.
Note that the crash signature differed depending on whether or not the
backend natively supports aggregate filtering
(supports_aggregate_filter_clause) as the fallback, which makes use
Case / When expressions, would result in a TypeError instead of a
NoneType AttributeError.
Thanks Rafael Urben for the report, Antoliny and Youngkwang Yang for
the triage.
Backport of 2a6e0bd72d4a69725b957d6748a4b834f21b12b5 from main
|
|
At the direction of the Security Team. Thanks Markus Holtermann,
Jake Howard, and Natalia Bidart for reviews.
Backport of 09d4bf5cd9c95c588d3ec22edea5db1f5f146900 from main.
|
|
Backport of 8ce3e1f9d0cdfdcba91e7e544804fa33f6fa9177 from main.
|
|
Backport of 5834643f43a767fe19f2c6d10217b204e7584ec8 from main.
|
|
Thanks Mustafa Barakat for the report, Baptiste Mispelon for
the triage, and Jake Howard for the review.
Backport of e05f2a75695b5f5faa7682d4053db4776d4d6f93 from main.
|
|
Backport of 7e765a68598b2b798e49bf1f4b431a7bcac085a4 from main.
|
|
Backport of c5a107e8248813f07325ae65232b5e53e9ac4238 from main.
|
|
Backport of 6e18c078d5c044a1d22dd6a64ace11d9e5f6d0bc from main.
|
|
the _connector kwarg.
Thanks cyberstan for the report, Sarah Boyce, Adam Johnson, Simon
Charette, and Jake Howard for the reviews.
Backport of c880530ddd4fabd5939bab0e148bebe36699432a from main.
|
|
HttpResponseRedirect/HttpResponsePermanentRedirect on Windows.
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.
Backport of c880530ddd4fabd5939bab0e148bebe36699432a from main.
|
|
composite pk.
Proxy models subclassing a model with a CompositePrimaryKey were
incorrectly reporting check errors because the check that requires only
local fields to be used in a composite pk was evaluated against the proxy
subclass, which has no fields.
To fix this, composite pk field checks are not evaluated against
proxy subclasses, as none of the checks are applicable to proxy
subclasses. This also has the benefit of not double-reporting real check
errors from an invalid superclass pk.
Thanks Clifford Gama for the review.
Backport of 74564946c3b42a2ef7d087047e49873847a7e1d9 from main.
|
|
Backport of ab108bf94dfc06c311d7dc81866b848fe5b5ee6c from main.
|
|
docs/topics/i18n/translation.txt.
Backport of 0ea01101c3a35568bc43e9707ac058b9874bd425 from main.
|
|
docs/topics/i18n/formatting.txt.
Co-authored-by: Ahmed Nassar <a.moh.nassar00@gmail.com>
Backport of 74239181252ca73bebb84789856f5d8937d421b4 from main.
|
|
Backport of 56977b466c33ca3da14a1ed2609172425a76a34e from main.
|
|
slices.
Backport of f715bc8990b5b8a1df948c2b71e8edbdda47e7db from main.
|
|
first()/last() when aggregating.
Backport of 02eed4f37879b2077496f86bb1378a076b981233 from main.
|
|
restart the shell.
Backport of 92d0c21e69901cb7b749040670d3e6611353e1fa from main.
|
|
The Database.Binary, Date, and Timestamp attributes were changed from
aliases to bytes, datetime.date, and datetime.datetime to factory
functions in oracle/python-oracledb@869a887819cdac7fcd610f9d9d463ade49ea7
which made their usage inadequate for isinstance checks.
Thanks John Wagenleitner for the report and Natalia for the triage.
Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com>
Backport of 315dbe675df338ae66c8fa43274a76ecbed7ef67 from main
|
|
Backport of 1167cd1d639c3fee69dbdef351d31e8a17d1fedf from main
|
|
Thanks Simon Charette for the review.
Backport of 608d3ebc8889863d43be1090d634b9507fe4a85e from main.
|
|
conform PEP 639.
See https://peps.python.org/pep-0639/ and
https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license-and-license-files.
Co-authored-by: Jacob Walls <jacobtylerwalls@gmail.com>
Backport of 96a7a652166bece8acc96d6335ebb8091de2f496 from main.
|
|
Backport of 4a8ca8bd6906b705c4445bc915d71beda2fc4b84 from main
|
|
from set_language() docs.
Backport of 2514857e3fae831106832cca8823237801cf2cad from main.
|
|
limit in bulk_create() docs.
Backport of 0a09c60e97166e0188717ff340b4d93b72207e96 from main.
|
|
Backport of 1499c95d990fb776c39ad60e43228cbbbfcad3a8 from main.
|
|
Backport of 43d84aef04a9e71164c21a74885996981857e66e from main.
|
|
Backport of 1324d9037e9281ec0fdd88c15b20881c7a6ea8b9 from main.
|
|
via archive.extract().
Thanks stackered for the report.
Follow up to 05413afa8c18cdb978fcdf470e09f7a12b234a23.
Backport of 924a0c092e65fa2d0953fd1855d2dc8786d94de2 from main.
|
|
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.
|
|
Backport of 6c82b0bc91fc650891b0b411ac4a5a86cf0cf3e8 from main.
|
|
Thanks Baptiste Mispelon for the report
Co-authored-by: Natalia <124304+nessita@users.noreply.github.com>
Backport of afe6634146d0fe70498976c49d2eb4d745aa9064 from main.
|
|
migrating a m2m field to use a through model.
Backport of daba609a9bdc7a97bcf327c7ba0a5f7b3540b46e from main.
|
|
Backport of 00174507f8a91e9577ae233c58af561b379f2695 from main.
|
|
docs/ref/contrib/postgres/search.txt.
Backport of efb96138b4af774c22ae6e949410b45d69960357 from main.
|
|
Backport of 762d3be8c559b0abf415be8d6117f04fb6347983 from main.
|
|
|
|
widget chosen labels in TabularInlines.
Regression in a0f50c2a483678d31bd1ad6f08fd3a0b8399e27b.
Backport of 1e7728888dbbff437ad9847c82b84feb81f785df from main.
|
|
Backport of c48904a225e2e8f02274257247d5b7d29c5fe183 from main.
|
|
in docs.
Thanks Mike Edmunds for the report.
Backport of e183d6c26c8da4486c151f9ce973828e2404a796 from main.
|