RepoJournal
Django

@django

Python's batteries-included web framework

Keep up with Django in about 3 minutes a day: what actually shipped — the commits, pull requests, releases, and security advisories that matter.

One email a day. Unsubscribe in one click.

Pick a date

Topics: Python Full archive →

The Wire · Showcase

DJANGO PATCHES FOUR CRITICAL VULNERABILITIES IN ADMIN AND SPATIAL QUERIES

By RepoJournal · Filed · About Django

Django shipped fixes for four CVEs overnight, including a stored XSS in admin URL rendering that could compromise staff accounts and three denial-of-service vectors in geolocation and language handling.

The most dangerous fix addresses CVE-2026-15920, where the admin renders URLField values as clickable links without validating them first [1]. A stored malicious URL could execute script in a staff member's authenticated session when clicked on changelists or read-only forms. Three additional CVEs landed in the same batch: CVE-2026-15307 blocks raster strings and dicts in spatial lookups that could trigger disk writes or network fetches through the GDALRaster constructor [2], CVE-2026-15830 mitigates DoS via nested geometry collections by adding max_geom_collections argument to limit either depth or total count before reaching GEOS [3], and CVE-2026-15337 rejects language codes longer than 500 characters before cache lookup to prevent memory exhaustion [4]. All four have been added to Django's security archive [5]. This is the security batch you patch immediately: URL validation in admin is table-stakes, and the spatial/internationalization DoS vectors hit production deployments using GIS or multi-language features.

One email a day. Unsubscribe in one click.

Action items

References

  1. [1] Fixed CVE-2026-15920 -- Made display_for_field() validate URLs before rendering admin links. django/django
  2. [2] Fixed CVE-2026-15307 -- Blocked raster strings and dicts in spatial lookups. django/django
  3. [3] Fixed CVE-2026-15830 -- Mitigated potential DoS via nested geometry collections. django/django
  4. [4] Fixed CVE-2026-15337 -- Mitigated potential DoS in check_for_language(). django/django
  5. [5] Added CVE-2026-15307, CVE-2026-15337, CVE-2026-15830, and CVE-2026-15920 to security archive. django/django

Quick answers

What shipped in Django on August 5, 2026?
Django shipped fixes for four CVEs overnight, including a stored XSS in admin URL rendering that could compromise staff accounts and three denial-of-service vectors in geolocation and language handling. In total, 8 commits and 2 pull requests landed.
Who contributed to Django on August 5, 2026?
2 developers shipped this update, including Natalia and Jacob Walls.
What were the notable Django updates?
Fixed CVE-2026-15920 -- Made display_for_field() validate URLs before rendering admin links, Fixed CVE-2026-15307 -- Blocked raster strings and dicts in spatial lookups, and Fixed CVE-2026-15830 -- Mitigated potential DoS via nested geometry collections.

More from @django

Daily updates, in your inbox

Follow Django

Keep up with Django in about 3 minutes a day: what actually shipped — the commits, pull requests, releases, and security advisories that matter.

or

One email a day. Unsubscribe in one click. Read a past issue →

Elsewhere on the wire

Want every project, not just this one?