Bug 2564008 (CVE-2026-114582) - CVE-2026-114582 django: Server-side request forgery via `SpatialReference` string input
Summary: CVE-2026-114582 django: Server-side request forgery via `SpatialReference` st...
Keywords:
Status: NEW
Alias: CVE-2026-114582
Deadline: 2026-11-03
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
low
low
Target Milestone: ---
Assignee: Product Security
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2026-10-30 13:28 UTC by OSIDB Bzimport
Modified: 2026-11-12 09:32 UTC (History)
48 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed:
Embargoed:


Attachments (Terms of Use)

Description OSIDB Bzimport 2026-10-30 13:28:34 UTC
CVE-2026-114582: Server-side request forgery via `SpatialReference` string input

`SpatialReference` passed string input to GDAL,

which by default resolves URLs and reads files. This behavior was not
documented by Django. Other affected methods included
`GEOSGeometry.transform()`, `OGRGeometry.transform()`, `GDALRaster.transform()`,
the `srs` setter of `OGRGeometry`, and the `srs` and `srid` setters of `GDALRaster`.
A URL or file path reaching any of these would issue an outbound request or
read a file as the Django process user. The attack vectors could be combined to
reveal local file contents by observing outbound requests.

`SpatialReference` now disables network and file access when parsing string
input on GDAL 3.9 and later. As a consequence, file paths and URLs are no
longer accepted as `SpatialReference` inputs. Dictionary references using the
`DICT:` prefix, including those prefixed with `ESRI::`, are rejected on all
GDAL versions.

Full protection requires GDAL 3.9 or later. Integer SRIDs are looked up
directly in the EPSG database, so prefer them when the input is untrusted. Or,
if strings must be used on lower GDAL versions, compare to an allow list. The
new `gis.W001` system check warns when the installed version of GDAL is not
at least 3.9.

This issue has severity "low" according to the [Django security policy](https://docs.djangoproject.com/en/dev/internals/security/#security-issue-severity-levels).

Thanks adraca for the report.


Note You need to log in before you can comment on or make changes to this bug.