Skip to main content

Django CVE-2026-53877

| EUVDEUVD-2026-42044 MEDIUM
Buffer Access with Incorrect Length Value (CWE-805)
2026-07-07 DSF GHSA-crhf-3pfg-w68w
6.3
CVSS 4.0 · Vendor: DSF
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Identify Django GIS endpoint accepting raster bytes
  2. Delivery
    Submit crafted malformed bytes payload
  3. Exploit
    GDALRaster instantiated with mismatched buffer length
  4. Execution
    Access vsi_buffer triggers over-read
  5. Impact
    Leak adjacent heap memory or crash worker process

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Buffer access bounds checking
Exploitation Conditions

Exploitation requires that the target Django application (1) has django.contrib.gis installed and active, (2) constructs a GDALRaster object from a bytes argument where those bytes are influenced by attacker-controlled input, and (3) subsequently accesses the vsi_buffer property on the resulting object. The CVSS 4.0 AT:P metric confirms these specific attack requirements must be met. Applications that do not use the django.contrib.gis.gdal GIS module are entirely unaffected. Standard Django deployments without geospatial functionality carry zero exposure. The limiting factors for realistic exploitation are the requirement for attacker-reachable bytes input to GDALRaster and the subsequent vsi_buffer property access - both of which are application-specific code paths, not default Django framework behavior.

Impact

The CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:N/VA:L) scores 6.3 Medium. The AT:P (Attack Requirements: Present) metric is the critical moderating signal: exploitation requires the target application to actively use django.contrib.gis.gdal.GDALRaster with attacker-influenced bytes input, which is not a default Django deployment scenario. This meaningfully reduces the realistic attack surface compared to a base AV:N/PR:N read. The dual impact - VC:L (memory disclosure) and VA:L (potential segfault causing service disruption) - is concerning but bounded. There is no EPSS data available to quantify exploitation likelihood in the wild, no CISA KEV listing, and no public POC, all of which reduce urgency relative to the CVSS score alone. Organizations not using django.contrib.gis are unaffected entirely. Those running Django GIS applications that accept raster data from untrusted sources face the most realistic risk.

Exploit ScenarioDerived

An attacker sends a crafted bytes payload representing a malformed raster object to a Django web endpoint that passes user-supplied data to GDALRaster(). When the application subsequently accesses vsi_buffer on the resulting object, the over-read either returns fragments of adjacent heap memory - potentially containing session tokens, keys, or other in-process data - or triggers a segmentation fault that crashes the worker process. No public exploit code is available at time of analysis.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Jul 07, 2026

Memory over-read in Django's GIS module allows unauthenticated remote attackers to potentially disclose adjacent heap memory or degrade service availability via a segmentation fault. The django.contrib.gis.gdal.GDALRaster class fails to correctly bound its read when constructed from a bytes object, exposing raw memory when the vsi_buffer property is subsequently accessed. Affects Django 6.0 before 6.0.7 and 5.2 before 5.2.16; no public exploit identified at time of analysis and not listed in CISA KEV.

RemediationAI

Upgrade to Django 6.0.7 or Django 5.2.16, the vendor-released patched versions announced in the Django security release at https://www.djangoproject.com/weblog/2026/jul/07/security-releases/. For applications that cannot upgrade immediately, the primary compensating control is to restrict or disable any code paths that construct GDALRaster objects from untrusted bytes input - specifically, audit all call sites of django.contrib.gis.gdal.GDALRaster(bytes_object) and ensure the bytes source is strictly validated or sourced only from trusted internal data. Blocking unauthenticated access to GIS endpoints that process raster data reduces network exposure. If the vsi_buffer property is not used by your application, removing that access path eliminates the trigger condition, though this is a code-level mitigation that requires application changes. Deployments on unsupported Django series (5.0.x, 4.1.x, 3.2.x) should prioritize upgrading to a supported branch rather than seeking targeted backports.

Affected VersionsENISA

Django 5.2 <5.2.16
Django 6.0 <6.0.7

Affected Packages

pypi django fix: 5.2.16, 6.0.7

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in pypi

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The vulnerability resides in django.contrib.gis.gdal.GDALRaster, the Django wrapper around the GDAL (Geospatial Data Abstraction Library) raster interface. CWE-805 (Buffer Access with Incorrect Length Value) identifies the root cause: when a GDALRaster is instantiated from a raw bytes object, the underlying memory buffer length is not correctly tracked or enforced. When the vsi_buffer property is later accessed - which exposes the in-memory virtual filesystem buffer used by GDAL - the read operation extends beyond the allocated region, either leaking adjacent heap contents or dereferencing an invalid address. This is an in-process memory-safety issue in Python C extension code bridging to the native GDAL library. The CPE cpe:2.3:a:djangoproject:django:*:*:*:*:*:*:*:* confirms the affected software is the canonical Django package published by the Django Software Foundation.

Know when Django gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (DSF) PRIMARY 6.3 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:N/VA:L/SC:N/SI:N/SA:N
vuln.today AI 4.8 MEDIUM

AC:H reflects AT:P attack requirement; exploitation needs application-specific GDALRaster bytes usage and vsi_buffer access, not default behavior.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:L
4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:N/VA:L/SC:N/SI:N/SA:N
SUSE 4.8 MEDIUM
AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:L
Red Hat 4.8 LOW

Primary rating from Vendor (DSF).

CVSS VectorVendor: DSF

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
None
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Jul 07, 2026 - 16:01 EUVD
CVSS changed
Jul 07, 2026 - 15:22 NVD
4.8 (MEDIUM) 6.3 (MEDIUM)

DescriptionCVE.org

An issue was discovered in Django 6.0 before 6.0.7 and 5.2 before 5.2.16. django.contrib.gis.gdal.GDALRaster over-reads its in-memory buffer when constructed from a bytes object, which can disclose adjacent memory or cause service degradation via a potential segmentation fault when the vsi_buffer property is accessed. Earlier, unsupported Django series (such as 5.0.x, 4.1.x, and 3.2.x) were not evaluated and may also be affected. Django would like to thank Bence Nagy for reporting this issue.

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 12 pypi packages depend on django (12 direct, 0 indirect)

Ecosystem-wide dependent count for version 5.2.

Threat Intelligence Overview

EPSS Score
0.3%
Top 79% exploitable
Prevalence
Medium
popular web framework, but GIS/GDAL extension is geospatial-niche
Social Media
2
Sightings
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment Vendor CIRCL VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

32
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

More in Django

View all
CVE-2021-23336 MEDIUM POC
5.9 Feb 15

The package python/cpython from 0 and before 3.6.13, from 3.7.0 and before 3.7.10, from 3.8.0 and before 3.8.8, from 3.9

CVE-2017-12794 MEDIUM POC
6.1 Sep 07

In Django 1.10.x before 1.10.8 and 1.11.x before 1.11.5, HTML autoescaping was disabled in a portion of the template for

CVE-2022-34265 CRITICAL POC
9.8 Jul 04

An issue was discovered in Django 3.2 before 3.2.14 and 4.0 before 4.0.6. Rated critical severity (CVSS 9.8), this vulne

CVE-2021-35042 CRITICAL POC
9.8 Jul 02

Django 3.1.x before 3.1.13 and 3.2.x before 3.2.5 allows QuerySet.order_by SQL injection if order_by is untrusted input

CVE-2019-19844 CRITICAL POC
9.8 Dec 18

Django before 1.11.27, 2.x before 2.2.9, and 3.x before 3.0.1 allows account takeover. Rated critical severity (CVSS 9.8

CVE-2026-61594 CRITICAL POC
9.1 Sep 16

An authentication/authorization bypass in the djust Python live-view framework (versions prior to 1.0.7) lets unauthenti

CVE-2026-61599 HIGH POC
8.8 Sep 16

Unauthenticated arbitrary Python module import in djust before 1.0.7 lets any client that can reach the WebSocket or SSE

CVE-2020-9402 HIGH POC
8.8 Mar 05

Django 1.11 before 1.11.29, 2.2 before 2.2.11, and 3.0 before 3.0.4 allows SQL Injection if untrusted data is used as a

CVE-2016-6186 MEDIUM POC
6.1 Aug 05

Cross-site scripting (XSS) vulnerability in the dismissChangeRelatedObjectPopup function in contrib/admin/static/admin/j

CVE-2026-93456 HIGH POC
8.4 Sep 18

Forged content modification in django-page-cms through 2.0.13 lets unauthenticated remote attackers exploit five CSRF-ex

CVE-2026-61593 HIGH POC
8.1 Sep 16

Cross-site request forgery in djust's Server-Sent-Events transport affects all versions prior to 1.0.7 and allows a cros

CVE-2026-61590 HIGH POC
7.4 Sep 16

Unauthenticated remote attackers can read live Django view and session state and invoke server-side handlers through dju

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
SUSE Linux Enterprise Module for Package Hub 15 SP7 Fixed
openSUSE Leap 16.0 Fixed
openSUSE Tumbleweed Fixed
SUSE Linux Enterprise Module for Package Hub 15 SP7 Affected
SUSE Linux Enterprise Module for Package Hub 15 SP6 Affected

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy