# CVE-2026-15830: Django GeoDjango unbounded recursion denial of service

Source: https://junglewise.ai/threats/cve-2026-15830-django-geodjango-unbounded-recursion-denial-of-service  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-08-04. Updated: 2026-09-25  
License: CC BY 4.0 with a link back

CVE-2026-15830 · Severity: medium · CVSS 5.3 · Published 2026-08-04

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.

Technologies: [Django (PyPI)](https://junglewise.ai/threats/technologies/django). Vendors: [PyPI](https://junglewise.ai/threats/vendors/pypi).

## Quick answers

**Is CVE-2026-15830 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2026-15830 being exploited in the wild.

**How severe is CVE-2026-15830?** Medium severity, with a CVSS score of 5.3, published 4 August 2026.

**Which products and versions are affected?** Django (PyPI) ECOSYSTEM:introduced=0,fixed=5.2.17, ECOSYSTEM:introduced=0,fixed=5.2.17,introduced=6.0,fixed=6.0.8.

**Is there a fix for CVE-2026-15830?** Yes. Django (PyPI): upgrade to 5.2.17, 6.0.8 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**How is CVE-2026-15830 attacked?** It is attacked over the network, in a software library.

**Am I affected by CVE-2026-15830?** Check whether you run Django (PyPI) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## How to fix

- Django (PyPI): upgrade to 5.2.17, 6.0.8 or later

  ```sh
  pip install "Django>=6.0.8"
  ```


## 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

## Identifiers

- CVE-2026-15830
- GHSA-q238-5cxm-5c9h
- PYSEC-2026-3717

## Timeline

- 2026-08-04: disclosed
- 2026-08-04: patched: Patches released for Django 5.2.17, 6.0.8, and 6.1

## References

- [https://pypi.org/project/Django/](https://pypi.org/project/Django/)
- [https://docs.djangoproject.com/en/dev/releases/security/](https://docs.djangoproject.com/en/dev/releases/security/)

## Related threats

- [Django GeoDjango spatial lookups file write and request forgery](https://junglewise.ai/threats/cve-2026-15307-django-geodjango-spatial-lookups-file-write-and-request-forgery)
- [PYSEC-2026-2449 - Django has a Race Condition vulnerability](https://junglewise.ai/threats/cve-2026-25674-django-has-a-race-condition-vulnerability)
- [PYSEC-2026-1296 - Django vulnerable to partial directory traversal via archives](https://junglewise.ai/threats/cve-2025-59682-django-vulnerable-to-partial-directory-traversal-via-archives)
- [Django DomainNameValidator header injection via newline characters](https://junglewise.ai/threats/cve-2026-53878-django-domainnamevalidator-header-injection-via-newline)
- [Django GDALRaster heap buffer over-read in GIS component](https://junglewise.ai/threats/cve-2026-53877-django-gdalraster-heap-buffer-over-read-in-gis-component)
