8.8

CVE-2026-15307: Server-side file-write and request forgery via spatial lookups

Analyzed
AliasesGHSA-wvqv-fj8w-qmhmBIT-django-2026-15307PYSEC-2026-4035
Published 04-08-2026Last modified 05-08-2026

Vulnerability summary

CVE-2026-15307 is a high (CVSS 8.8) External Control of File Name or Path vulnerability in djangoproject django. EPSS estimates a 1.13% chance of exploitation in the next 30 days, higher than 66.5% of scored vulnerabilities.

Priority
Routine

Not severe (CVSS 8.7, network access); no exploitation reported by the 5 checked sources

Source freshness unavailable

How is this decided?
CVSS score
8.8/10
010
High · v3.1 (CVE.org)
EPSS score
1.13%
0%100%
Low · +0.04 pp in 30 days
KEVNot listedNot listed by any tracked catalog.
RansomwareNot flaggedNo ransomware use recorded.
Public exploits0No public exploits recorded

Advisory lineage

Upstream 0 · Downstream 10 · Related 6

Timeline

  1. 04-08-2026
    PublishedVulnerability first disclosed.
  2. 05-08-2026
    Last modifiedVulnerability information updated.

Description

An issue was discovered in Django 5.2 before 5.2.17 and 6.0 before 6.0.8. GeoDjango spatial lookups optimistically parse the right-hand-side value as a raster by passing it to the `django.contrib.gis.gdal.GDALRaster` constructor. Any value used in a spatial lookup against a `GeometryField` or `RasterField` reaches this constructor, including untrusted input, for example a spatial-field filter submitted through the Django admin changelist query string by a staff user with view permission. A `dict`, or a `str` holding its JSON representation, is opened in write mode regardless of the constructor's `write=False` default, allowing a file with an attacker-chosen name and contents to be written through a file-backed GDAL driver. Any other `str` is treated as a datasource, allowing an outbound network request through a GDAL virtual filesystem handler. Writing a file to a location later imported by the application can result in remote code execution. 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 Bence Nagy, localhost-detect, and kimchunbok_ for reporting this issue.

CVSS metrics

11 scores · 7 sources · 2 versions

EPSS trend

Probability

1.13%

Chance of exploitation in the next 30 days

Percentile

67%

Versus all other CVEs

30-day change

Increase +0.04 pp

From 1.09% on 04-10-2026

04-10-202603-11-2026

Known exploited

Compare KEV catalogs
CISA KEV

Not in the CISA KEV catalog.

ENISA CNW

Not in the ENISA CNW catalog.

CIRCL

Not in the CIRCL catalog.

Public exploits

0 found

No public exploits indexed.

Weaknesses

CWE · root cause

Affected systems

Version check

Known conditions: network-reachable, low-privilege account, no user interaction (CVSS vector). Other conditions: not stated in public data.

Chainguard12 products
  • authentik-2025.12All versions (No fix recorded)
  • authentik-2026.2< 2026.2.7-r3
  • authentik-2026.5< 2026.5.7-r7
  • authentik-fips-2025.12All versions (No fix recorded)
  • authentik-fips-2026.2All versions (No fix recorded)
Alpine1 product
  • py3-django< 5.2.17-r0
Debian1 product
  • python-djangoAll versions (No fix recorded) | < 3:5.2.17-1
Djangoproject1 product
  • django≥ 5.2, < 5.2.17 | < 5.2.17 | ≥ 6.0, < 6.0.8
PyPI1 product
  • django< 5.2.17 | ≥ 6.0a1, < 6.0.8
Ubuntu1 product
  • python-djangoAll versions (No fix recorded) | < 2:3.2.12-2ubuntu1.29 | < 3:4.2.11-1ubuntu1.18 | < 3:5.2.9-0ubuntu4.3

6 vendors · 17 products

References

21 links
Show all 21 references