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 DROPS UNSAFE JSON RESPONSE PARAMETER

By RepoJournal · Filed · About Django

Django is deprecating the safe parameter in JSONResponse, finally closing a vulnerability that JavaScript frameworks eliminated years ago.

The safe parameter, a quirk of pre-ES5 JavaScript that allowed JSON injection attacks, is being removed [1]. Every peer framework has already dropped this check. This is a straightforward deprecation path for anyone still passing safe=False to JSONResponse. In related infrastructure work, the release script got hardened with git tag commit hashes and expanded test coverage [2], so future releases will be even more bulletproof. The security docs also got a cleanup pass to link directly to severity level definitions instead of burying context in the disclosure process [3]. On the async auth front, login() and logout() now properly update request.auser when it exists on the request object [4], completing a follow-up that started with earlier async authentication work. Documentation also got a minor fix removing outdated language about unlimited results in QuerySet.get() [5]. The djangoproject.com admin gained better security issue tracking with discovery field exposure and UTC time rendering for checklists [6] [7] [8].

One email a day. Unsubscribe in one click.

Action items

References

  1. [1] Fixed #36905 -- Deprecated the safe parameter of JSONResponse. django/django
  2. [2] Improved release script by adding git tag commit hash and extra tests. ↗ django/django
  3. [3] Updated links to severity levels in release notes. ↗ django/django
  4. [4] Fixed #37019 -- Updated login() and logout() to set request.auser. ↗ django/django
  5. [5] Fixed #35596 -- Removed mention of unlimited results from QuerySet.get(). django/django
  6. [6] [checklists] Expose "discovery" in SecurityIssue admin fields. ↗ django/djangoproject.com
  7. [7] [checklists] Render checklists title using UTC time. django/djangoproject.com
  8. [8] [checklists] Expose "discovery" in SecurityIssue admin fields. django/djangoproject.com

Quick answers

What shipped in Django on May 28, 2026?
Django is deprecating the safe parameter in JSONResponse, finally closing a vulnerability that JavaScript frameworks eliminated years ago. In total, 11 commits and 7 pull requests landed.
Who contributed to Django on May 28, 2026?
3 developers shipped this update, including nessita, jacobtylerwalls, and vishy0.
What were the notable Django updates?
Fixed #36905 -- Deprecated the safe parameter of JSONResponse, Improved release script by adding git tag commit hash and extra tests, and Updated links to severity levels in release notes.

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?