CVE-2026-33034
Django vulnerability analysis and mitigation

Overview

CVE-2026-33034 is a denial-of-service vulnerability in Django's ASGI request handling that allows remote attackers to bypass the DATA_UPLOAD_MAX_MEMORY_SIZE memory limit by sending requests with a missing or understated Content-Length header, causing unbounded memory allocation. It affects Django 6.0 before 6.0.4, 5.2 before 5.2.13, and 4.2 before 4.2.30; earlier unsupported series (5.0.x, 4.1.x, 3.2.x) were not evaluated but may also be affected. The vulnerability was disclosed on April 7, 2026, and was reported by a researcher named "Superior" (Django Advisory). It carries a CVSS v3.1 base score of 7.5 (High) (GitHub Advisory).

Technical details

The root cause is classified as CWE-770 (Allocation of Resources Without Limits or Throttling) and CWE-130 (Improper Handling of Length Parameter Inconsistency) (GitHub Advisory, Feedly). When Django processes ASGI requests, it relies on the Content-Length header to enforce the DATA_UPLOAD_MAX_MEMORY_SIZE upload size limit before reading HttpRequest.body; if the header is absent or set to a value lower than the actual body size, the limit check is bypassed and the full request body is read into memory without restriction. This is a network-exploitable, unauthenticated attack requiring no user interaction and low complexity. Patch commits are publicly available in the Django repository (Django Changeset).

Impact

Successful exploitation allows an unauthenticated remote attacker to cause memory exhaustion on the Django application server, leading to denial of service through application crashes or severe performance degradation. There is no impact on confidentiality or data integrity — the vulnerability is purely an availability issue. Applications using ASGI (e.g., with Daphne or Uvicorn) that read HttpRequest.body are at risk; WSGI deployments are not affected by this specific bypass (GitHub Advisory, Red Hat Bugzilla).

Exploitability

As of the time of disclosure, there is no public proof-of-concept exploit specifically for CVE-2026-33034, and no evidence of in-the-wild exploitation has been reported (Feedly). The EPSS score is approximately 0.035% (11th percentile), indicating a low near-term exploitation probability (GitHub Advisory). The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. No threat actor attribution has been identified. Note: a separate GitHub repository (ch4n3-yoon/CVE-2026-33033-PoC) exists for the related CVE-2026-33033 but is not directly applicable to this CVE.

Exploitation steps

  1. Identify target: Locate Django applications running in ASGI mode (e.g., using Daphne, Uvicorn, or Hypercorn) on versions 4.2.x < 4.2.30, 5.2.x < 5.2.13, or 6.0.x < 6.0.4 that read HttpRequest.body in their view logic.
  2. Craft malicious request: Construct an HTTP POST (or other body-bearing) request to any endpoint that accesses HttpRequest.body, with the Content-Length header either omitted entirely or set to a small value (e.g., Content-Length: 0 or Content-Length: 1) while the actual request body is very large.
  3. Send the request: Transmit the crafted request to the ASGI server. Because the Content-Length is missing or understated, Django's DATA_UPLOAD_MAX_MEMORY_SIZE guard is bypassed and the server reads the full body into memory.
  4. Repeat for DoS: Send multiple such requests concurrently to exhaust server memory, causing the application process to crash or become unresponsive (GitHub Advisory, Django Advisory).

Indicators of compromise

  • Network: High volume of HTTP POST requests to ASGI-served endpoints with missing or anomalously small Content-Length headers but large actual body sizes; unusual spikes in inbound traffic volume to Django application ports.
  • Logs: Django/ASGI server logs showing repeated large body reads on endpoints that access HttpRequest.body; memory allocation errors or OOM (Out of Memory) kill events in system logs (/var/log/syslog, dmesg).
  • Process: Sudden increase in memory consumption by the Django ASGI worker processes (Daphne, Uvicorn, Hypercorn); worker processes being killed and restarted by process managers (systemd, supervisor).
  • Application: Increased HTTP 500 or 503 error rates from the Django application coinciding with large inbound requests.

Mitigation and workarounds

Upgrade Django to the patched versions: 6.0.4, 5.2.13, or 4.2.30 depending on the installed series (Django Advisory, GitHub Advisory). If immediate patching is not possible, implement request body size limits at the reverse proxy or load balancer level (e.g., client_max_body_size in Nginx, LimitRequestBody in Apache) to enforce Content-Length validation before requests reach Django. Additionally, monitor for requests with missing or anomalous Content-Length headers and consider rate-limiting or blocking such requests at the network perimeter. IBM Storage Defender - Resiliency Service users should also refer to the IBM advisory for product-specific guidance (IBM Advisory).

Community reactions

The Django Software Foundation disclosed the vulnerability via their official security releases blog and the django-announce mailing list on April 7, 2026 (Django Advisory). Red Hat opened a tracking bug (BZ#2455927) and assigned medium severity, with 33 engineers CC'd, indicating broad internal attention across Red Hat products (Red Hat Bugzilla). Ubuntu issued security notices USN-8154-1 and USN-8154-2, and openSUSE and Mageia also released updated packages, reflecting prompt uptake by major Linux distributions. No significant social media controversy or notable independent researcher commentary beyond standard advisory coverage has been identified.

Additional resources

Linux Distribution fix status

Fix availability across major Linux distributions and their releases.

Debian

Fixed

bookworm

python-django

Affected

sid

python-django: 3:4.2.30-1

Fixed

trixie

python-django

Affected

RHEL / CentOS

Unknown

Alpine

Fixed

edge

py3-django: 5.2.13-r0

Fixed

v3.23

py3-django: 4.2.30-r0

Fixed

SourceThis report was generated using AI

Related Django vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-15830MEDIUM6.9
  • Django logoDjango
  • py3-django
NoYesAug 04, 2026
CVE-2026-53877MEDIUM6.3
  • Django logoDjango
  • openstack-horizon-2026.1
NoYesJul 07, 2026
CVE-2026-53878MEDIUM5.3
  • Django logoDjango
  • python-django5
NoYesJul 07, 2026
CVE-2026-48588LOW2.3
  • Django logoDjango
  • authentik-2026.5
NoYesJul 07, 2026
CVE-2026-8404LOW2.3
  • Django logoDjango
  • python311-Django
NoYesJun 03, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management