Executive brief
Django is a widely-used web framework that includes optional GeoDjango functionality for handling geographic data. A denial-of-service vulnerability exists in GeoDjango's geometry parsing when processing deeply nested spatial objects, which can crash the application through resource exhaustion. An attacker can exploit this by supplying malicious geographic data through web forms or spatial queries, potentially disrupting service availability for all users.
Technical details
The vulnerability is a denial-of-service condition in Django's `django.contrib.gis.geos.GEOSGeometry` class caused by unbounded recursion when parsing deeply nested `GEOMETRYCOLLECTION` objects supplied in well-known text (WKT), well-known binary (WKB), or hex-encoded WKB formats. The root cause is insufficient recursion depth checking in the geometry parser, which triggers a segmentation fault in the underlying GEOS library. The vulnerability affects spatial field lookups and the `django.contrib.gis.forms.GeometryField` form field. Attack vectors include any application endpoint accepting geometry data from untrusted sources (e.g., map applications, GIS API endpoints). Patches are available in Django 5.2.17, 6.0.8, and 6.1+.
Affected products
- Django Software Foundation Django 5.2 before 5.2.17, 6.0 before 6.0.8
Timeline
- 2026-08-04: disclosed
- 2026-08-04: patched: Patches released for Django 5.2.17, 6.0.8, and 6.1