Forkward

Django 2.2, end of life since 11 April 2022

Django 2.2.28 vulnerabilities

Django 2.2.28 is the last release of the 2.2 branch, end of life since 11 April 2022. The OSV open-source vulnerability database lists 17 vulnerabilities for this version, 1 of them critical. The Django project fixes flaws only in supported releases.

  • 17known vulnerabilities
  • 1critical
  • 5high
  • 0exploited in the wild

What you can do

Keep Django 2.2.28, patched

We backport the security fixes to the Django release your application runs, built and tested before delivery. A fix for a new vulnerability arrives within 48 hours of your order, or within 24 hours with priority delivery.

Upgrade

Move to a supported Django release once your application can make the jump. Our fixes keep you safe while you plan it.

Assess first

Our assessment shows which vulnerabilities are real on your servers, what else is past end of life, and the remediation plan.

Request a server assessment

All 17 known vulnerabilities in Django 2.2.28

OSV.dev, the open-source vulnerability database used by GitHub and Google, 28 October 2026, highest score first. Fixed in: the first upstream release with the fix, where OSV records it. Exploited: listed in the CISA catalogue of known exploited vulnerabilities.

CVEScoreSeverityPublishedFixed inDescription
CVE-2025-644599.1Critical2025-11-054.2.26Django vulnerable to SQL injection via _connector keyword argument in QuerySet and Q objects.
CVE-2022-363598.8High2022-08-113.2.15Django vulnerable to Reflected File Download attack
CVE-2026-153078.8High2026-08-045.2.17Django GeoDjango spatial lookups allow file writes and outbound requests through GDAL raster parsing
CVE-2026-153078.8High2026-10-015.2.17Django GeoDjango spatial lookups allow file writes and outbound requests through GDAL raster parsing
CVE-2025-644587.5High2025-11-054.2.26Django has a denial-of-service vulnerability in HttpResponseRedirect and HttpResponsePermanentRedirect on Windows
CVE-2025-578337.1High2025-09-084.2.24Django is subject to SQL injection through its column aliases
CVE-2026-538786.1Medium2026-07-075.2.16Django: DomainNameValidator permits newline characters that may enable HTTP header injection
CVE-2026-158305.3Medium2026-08-045.2.17Django GeoDjango vulnerable to denial of service through deeply nested geometry collections
CVE-2026-538774.8Medium2026-07-075.2.16Django: GDALRaster may over-read heap memory when constructed from bytes
CVE-2025-484324.0Medium2025-06-054.2.22Django Improper Output Neutralization for Logs vulnerability
CVE-2024-452313.7Low2024-10-084.2.16Django allows enumeration of user e-mail addresses
CVE-2024-452313.7Low2026-07-074.2.16Django allows enumeration of user e-mail addresses
CVE-2026-485873.1Low2026-06-035.2.15Django: has_vary_header may expose cached responses when Vary values contain whitespace
CVE-2026-485883.1Low2026-07-075.2.16Django: cache middleware may expose private responses when unrelated request cookies are present
CVE-2026-68733.1Low2026-06-035.2.15Django: signed cookies are vulnerable to salt namespace collisions
CVE-2026-84043.1Low2026-06-035.2.15Django: UpdateCacheMiddleware may disclose cached responses due to case-sensitive Cache-Control handling
CVE-2026-15830n/aN/a2026-08-045.2.17An issue was discovered in Django 5.2 before 5.2.17 and 6.0 before 6.0.8. GeoDjango's `django.contrib.gis.geos.GEOSGeometry` is subject to a potential denial-of-service when parsing deeply nested `GEOMETRYCOLLECTION` objects supplied as well-known text (WKT), well-known binary (WKB), or hex-encoded WKB, which triggers unbounded recursion and a segmentation fault in the underlying GEOS library. Spatial field lookups and the `django.contrib.gis.forms.GeometryField` form field are also affected. Earlier, unsupported Django series (such as 5.1.x, 5.0.x, and 4.2.x) were not evaluated and may also be affected. Django would like to thank Andrew MacPherson and kimchunbok_ for reporting this issue.