The Wire · Showcase
DJANGO TIGHTENS SECURITY ON FUNDRAISING, SHIPS DARK MODE FOR ERROR PAGES
By RepoJournal · Filed · About Django
The Django project fixed a critical authentication bypass in its fundraising app that allowed unauthenticated donors to update other users' payment methods.
The djangoproject.com team patched an unprotected endpoint in the fundraising app [1] where the `update_card()` function accepted a bare donation ID from POST requests with zero authorization checks. An attacker could update any donor's card by guessing or scraping donation IDs. The fix now requires the donor's hero token and scopes the lookup through the authenticated user's donation set, matching patterns already used correctly elsewhere in the codebase. Meanwhile, Django core shipped dark mode support for technical 404 and 500 error pages [2], completing work on ticket #35875 with CSS overrides for the prefers-color-scheme media query. The team also added gettext installation to GitHub Actions workflows [3] to prevent skipped i18n extraction tests. On the documentation front, Django added GeneratedField examples to the PostgreSQL search reference [4] and made the Django Core Developers page discoverable by adding sitemap entries and a route name [5].
Action items
- → Review and apply the fundraising app security patch immediately if you run Django's donation system django/djangoproject.com [immediate]
- → Update your development environment to include gettext for consistent i18n testing django/django [plan]
- → Monitor the dark mode implementation across error pages in your own Django deployments django/django [monitor]
References
- [1] Fixed unauthenticated cross-donor card update in fundraising app. django/djangoproject.com
- [2] Fixed #35875 -- Added dark mode support to technical 404 and 500 error views. ↗ django/django
- [3] Added step to install gettext in Github Actions workflows. ↗ django/django
- [4] Fixed #37219 -- Added GeneratedField example to PostgreSQL search reference. django/django
- [5] Fixed #2714 -- Made the Django Core Developers page discoverable. (#2715) django/djangoproject.com