<feed xmlns='http://www.w3.org/2005/Atom'>
<title>django.git, branch 5.2.11</title>
<subtitle>django
</subtitle>
<id>http://cgit.adnoto.dev/django.git/atom?h=5.2.11</id>
<link rel='self' href='http://cgit.adnoto.dev/django.git/atom?h=5.2.11'/>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/'/>
<updated>2026-02-03T13:20:00Z</updated>
<entry>
<title>[5.2.x] Bumped version for 5.2.11 release.</title>
<updated>2026-02-03T13:20:00Z</updated>
<author>
<name>Jacob Walls</name>
<email>jacobtylerwalls@gmail.com</email>
</author>
<published>2026-02-03T13:20:00Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=4a96a199bbb1d3dca45ea16bf643216e179cb8bc'/>
<id>urn:sha1:4a96a199bbb1d3dca45ea16bf643216e179cb8bc</id>
<content type='text'>
</content>
</entry>
<entry>
<title>[5.2.x] Refs CVE-2026-1312 -- Raised ValueError when FilteredRelation aliases contain periods.</title>
<updated>2026-02-03T13:19:02Z</updated>
<author>
<name>Jacob Walls</name>
<email>jacobtylerwalls@gmail.com</email>
</author>
<published>2026-01-21T23:00:13Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=ab0ad8d39555292b55123adeac57ed64c776f8d9'/>
<id>urn:sha1:ab0ad8d39555292b55123adeac57ed64c776f8d9</id>
<content type='text'>
This prevents failures at the database layer, given that aliases in the
ON clause are not quoted.

Systematically quoting aliases even in FilteredRelation is tracked in
https://code.djangoproject.com/ticket/36795.

Backport of 005d60d97c4dfb117503bdb6f2facfcaf9315d84 from main.
</content>
</entry>
<entry>
<title>[5.2.x] Fixed CVE-2026-1312 -- Protected order_by() from SQL injection via aliases with periods.</title>
<updated>2026-02-03T13:18:30Z</updated>
<author>
<name>Jacob Walls</name>
<email>jacobtylerwalls@gmail.com</email>
</author>
<published>2026-01-21T22:53:52Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=e863ee273c6553e9b6fa4960a17acb535851857b'/>
<id>urn:sha1:e863ee273c6553e9b6fa4960a17acb535851857b</id>
<content type='text'>
Before, `order_by()` treated a period in a field name as a sign that it
was requested via `.extra(order_by=...)` and thus should be passed
through as raw table and column names, even if `extra()` was not used.
Since periods are permitted in aliases, this meant user-controlled
aliases could force the `order_by()` clause to resolve to a raw table
and column pair instead of the actual target field for the alias.

In practice, only `FilteredRelation` was affected, as the other
expressions we tested, e.g. `F`, aggressively optimize away the ordering
expressions into ordinal positions, e.g. ORDER BY 2, instead of ORDER BY
"table".column.

Thanks Solomon Kebede for the report, and Simon Charette and Jake Howard
for reviews.

Backport of 69065ca869b0970dff8fdd8fafb390bf8b3bf222 from main.
</content>
</entry>
<entry>
<title>[5.2.x] Fixed CVE-2026-1287 -- Protected against SQL injection in column aliases via control characters.</title>
<updated>2026-02-03T13:17:34Z</updated>
<author>
<name>Jake Howard</name>
<email>git@theorangeone.net</email>
</author>
<published>2026-01-21T11:14:48Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=3e68ccdc11c127758745ddf0b4954990b14892bc'/>
<id>urn:sha1:3e68ccdc11c127758745ddf0b4954990b14892bc</id>
<content type='text'>
Control characters in FilteredRelation column aliases could be used for
SQL injection attacks. This affected QuerySet.annotate(), aggregate(),
extra(), values(), values_list(), and alias() when using dictionary
expansion with **kwargs.

Thanks Solomon Kebede for the report, and Simon Charette, Jacob Walls,
and Natalia Bidart for reviews.

Backport of e891a84c7ef9962bfcc3b4685690219542f86a22 from main.
</content>
</entry>
<entry>
<title>[5.2.x] Fixed CVE-2026-1285 -- Mitigated potential DoS in django.utils.text.Truncator for HTML input.</title>
<updated>2026-02-03T13:15:39Z</updated>
<author>
<name>Natalia</name>
<email>124304+nessita@users.noreply.github.com</email>
</author>
<published>2026-01-21T12:53:10Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=9f2ada875bbee62ac46032e38ddb22755d67ae5a'/>
<id>urn:sha1:9f2ada875bbee62ac46032e38ddb22755d67ae5a</id>
<content type='text'>
The `TruncateHTMLParser` used `deque.remove()` to remove tags from the
stack when processing end tags. With crafted input containing many
unmatched end tags, this caused repeated full scans of the tag stack,
leading to quadratic time complexity.

The fix uses LIFO semantics, only removing a tag from the stack when it
matches the most recently opened tag. This avoids linear scans for
unmatched end tags and reduces complexity to linear time.

Refs #30686 and 6ee37ada3241ed263d8d1c2901b030d964cbd161.

Thanks Seokchan Yoon for the report, and Jake Howard and Jacob Walls for
reviews.

Backport of a33540b3e20b5d759aa8b2e4b9ca0e8edd285344 from main.
</content>
</entry>
<entry>
<title>[5.2.x] Fixed CVE-2026-1207 -- Prevented SQL injections in RasterField lookups via band index.</title>
<updated>2026-02-03T13:14:44Z</updated>
<author>
<name>Jacob Walls</name>
<email>jacobtylerwalls@gmail.com</email>
</author>
<published>2026-01-19T20:42:33Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=17a1d64a58ef24c0c3b78d66d86f5415075f18f0'/>
<id>urn:sha1:17a1d64a58ef24c0c3b78d66d86f5415075f18f0</id>
<content type='text'>
Thanks Tarek Nakkouch for the report, and Simon Charette for the initial
triage and review.

Backport of 81aa5292967cd09319c45fe2c1a525ce7b6684d8 from main.
</content>
</entry>
<entry>
<title>[5.2.x] Fixed CVE-2025-14550 -- Optimized repeated header parsing in ASGI requests.</title>
<updated>2026-02-03T13:13:57Z</updated>
<author>
<name>Jake Howard</name>
<email>git@theorangeone.net</email>
</author>
<published>2026-01-14T15:25:45Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=1ba90069c12836db46981bdf75b0e661db5849ce'/>
<id>urn:sha1:1ba90069c12836db46981bdf75b0e661db5849ce</id>
<content type='text'>
Thanks Jiyong Yang for the report, and Natalia Bidart, Jacob Walls, and
Shai Berger for reviews.

Backport of eb22e1d6d643360e952609ef562c139a100ea4eb from main.
</content>
</entry>
<entry>
<title>[5.2.x] Fixed CVE-2025-13473 -- Standardized timing of check_password() in mod_wsgi auth handler.</title>
<updated>2026-02-03T13:13:08Z</updated>
<author>
<name>Jake Howard</name>
<email>git@theorangeone.net</email>
</author>
<published>2025-11-19T16:52:28Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=184e38ab0a061c365f5775676a074796d8abd02f'/>
<id>urn:sha1:184e38ab0a061c365f5775676a074796d8abd02f</id>
<content type='text'>
Refs CVE-2024-39329, #20760.

Thanks Stackered for the report, and Jacob Walls and Markus Holtermann
for the reviews.

Co-authored-by: Natalia &lt;124304+nessita@users.noreply.github.com&gt;

Backport of 3eb814e02a4c336866d4189fa0c24fd1875863ed from main.
</content>
</entry>
<entry>
<title>[5.2.x] Added stub release notes and release date for 5.2.11 and 4.2.28.</title>
<updated>2026-01-27T20:33:51Z</updated>
<author>
<name>Jacob Walls</name>
<email>jacobtylerwalls@gmail.com</email>
</author>
<published>2026-01-26T17:08:25Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=d8c551d21459b260f50906f1e48bdf381e620533'/>
<id>urn:sha1:d8c551d21459b260f50906f1e48bdf381e620533</id>
<content type='text'>
Backport of b30e09a94270fdaa4bf282bf442b758c9a6d0bb0 from main.
</content>
</entry>
<entry>
<title>[5.2.x] Clarified regression nature of data loss bug in docs/releases/5.2.10.txt.</title>
<updated>2026-01-08T15:13:27Z</updated>
<author>
<name>Tim Graham</name>
<email>timograham@gmail.com</email>
</author>
<published>2026-01-08T14:55:30Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=3ea659dc1b8d72d3cab2de17d28cd9d2d06d6eed'/>
<id>urn:sha1:3ea659dc1b8d72d3cab2de17d28cd9d2d06d6eed</id>
<content type='text'>
Backport of 2be860d6cfb04c9b3643f7c31ce90df280c8e747 from main.
</content>
</entry>
</feed>
