Safeguard
Security Guides•

Which Django versions get security fixes, and how do you hear about them?

Django supports the main branch, the two latest series and long-term support releases. How its disclosure policy works and what to do on your version.

Safeguard Security Team
4 min read

Django provides security support for its main development branch, the two most recent release series, and long-term support releases for a specified period. If you run any other series, no security fix is planned for it, so the first question to answer about any Django notice is whether your series is supported.

The support rule

Django's security policy page says that at any time the team gives official security support to several versions:

  • the main development branch, which will become the next major release;
  • the two most recent release series;
  • long-term support releases, for a specified period.

Security issues that affect only the main branch, and no stable release, are fixed in public without going through the disclosure process. When a release is issued for security reasons, the notice includes a list of affected versions.

So for a team on an older series that is neither recent nor long-term support, a new notice may list versions you run, and no patch for you. The fix is a move to a supported series.

What the policy says about timing

The page says reports aim to be resolved within the industry standard 90 days, and confirmed high severity vulnerabilities are addressed promptly. It describes an acknowledgment of a report within three working days. These timings apply to reporters, but they tell you something useful: a notice usually arrives after private work, with a fixed release ready.

The policy page also has sections on severity levels, how Django discloses issues and who receives advance notification, and a way to request notifications. Check those sections if you distribute Django as part of a product or platform, since advance notification is aimed at specific parties.

How to hear about issues

  1. Follow the project's security announcements, which the policy describes as the place disclosures are made.
  2. Add the Python advisory records to your scanner. See where Python package advisories come from.
  3. Keep a table of the Django series you run in each service.
  4. For each notice, compare the affected list with your series.
Your seriesLikely statusAction
Latest seriesSupportedUpgrade to the patch release
Previous seriesSupportedUpgrade to the patch release
Long-term support, within its periodSupportedUpgrade to the patch release
Anything olderNo planned fixPlan a move to a supported series

A note on trusting input

The policy also lists boundaries, such as sanitising user input and limits on header, URL and body size, as things Django expects you to handle at the application level. Read these when you see a report that depends on input you control.

Steps for a patch release

  1. Pin the new patch version in your lock file.
  2. Run the test suite, including a smoke test of the admin and login paths.
  3. Deploy to staging, then production.
  4. Record the version reached and the date.

Where Safeguard fits

Safeguard's SBOM and dependency scanning identifies the Django version in each service, and reachability analysis helps show whether a vulnerable path is used. A free scan is at https://gold.safeguard.sh/scan.

Quick check

Does Django patch every old release?

No. The policy covers the main branch, the two most recent series and long-term support releases.

Are main-branch-only issues announced?

They are fixed in public without the disclosure process, since no stable release is affected.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.