PatchSiren cyber security CVE debrief
CVE-2026-114138 encode CVE debrief
A vulnerability in Django REST framework's content negotiation can cause high CPU usage when handling Accept headers with many large quoted parameters, potentially leading to denial-of-service conditions. This issue arises from the framework's inability to limit the number of tokens or their total size in the Accept header, leading to prolonged content negotiation processing times. For instance, a single GET request with a 780KB Accept header composed of 96 tokens can keep a gunicorn worker busy for 18.87 seconds. The vulnerability affects Django REST framework versions prior to 3.18.2 and can be mitigated by applying patches or updates.
- Vendor
- encode
- Product
- djangorestframework
- CVSS
- HIGH 7.5
- CISA KEV
- Not listed in stored evidence
- Original CVE published
- 2026-10-22
- Original CVE updated
- 2026-10-22
- Advisory published
- 2026-10-22
- Advisory updated
- 2026-10-22
Who should care
Defenders responsible for Django REST framework deployments should assess exposure and prioritize patching or mitigation to prevent potential denial-of-service conditions. This includes verifying the version of the Django REST framework in use, applying patches or updates as necessary, and monitoring for suspicious traffic patterns that could exploit this vulnerability. Additionally, defenders should consider implementing rate limiting or IP blocking for
Why it matters
Defenders should prioritize verifying exposure and applying patches or mitigations to prevent potential denial-of-service conditions due to high CPU usage in Django REST framework's content negotiation.
- Potential denial-of-service conditions due to high CPU usage
- Increased risk of service disruption or downtime
- Need for verification of exposure and application of patches or mitigations
Technical summary
The Django REST framework's content negotiation mechanism is vulnerable to high CPU usage when handling Accept headers with many large quoted parameters. This can lead to potential denial-of-service conditions. The vulnerability arises from the framework's inability to limit the number of tokens or their total size in the Accept header, leading to prolonged content negotiation processing times. A single GET request with a 780KB Accept header composed of 96 tokens can keep a gunicorn worker busy for 18.87 seconds, demonstrating the potential impact on system performance.
Defensive priority
Defenders should prioritize verifying exposure and applying patches or mitigations to prevent potential denial-of-service conditions.
Recommended defensive actions
- Verify exposure by checking if the Django REST framework version is prior to 3.18.2
- Apply patches or updates to the Django REST framework to prevent potential denial-of-service conditions
- Monitor for suspicious traffic patterns that could exploit this vulnerability
- Consider implementing rate limiting or IP blocking for suspicious traffic
- Review compensating controls for exposed systems while remediation is scheduled and verified
- Track exceptions, retest remediated assets, and close the item only after evidence is documented
- Confirm whether affected product deployments exist in managed environments and assign an owner for follow-up
Evidence notes
The vulnerability was reported and verified through testing, which showed that a single GET request with a 780KB Accept header made of 96 tokens kept one gunicorn worker busy for 18.87 seconds. The testing was conducted on Django 6.1, djangorestframework 3.18.0, gunicorn 26.0.0, Python 3.13, and Docker on macOS. The header is syntactically valid, fits inside gunicorn's default header limits, and requires no authentication. The vulnerability was identified as a potential denial-of-service condition due to high CPU usage in Django REST
Sources and references
Verified primary and authoritative sources
-
CVE-2026-114138 CVE Program record
Publisher, destination, and source semantics verified
URL: https://www.cve.org/CVERecord?id=CVE-2026-114138
CVE Program - Official CVE Program record with source-provided CVE metadata.
-
CVE-2026-114138 NVD vulnerability detail
Publisher, destination, and source semantics verified
URL: https://nvd.nist.gov/vuln/detail/CVE-2026-114138
NIST National Vulnerability Database - Official NIST NVD detail page and source-specific vulnerability assessment.
Supplemental references
-
Django REST framework: Accept header with many large quoted parameters burns ~19s of CPU per req
Unverified legacy reference
URL: https://storage.googleapis.com/osv-vulnerabilities/PyPI/GHSA-33wh-fxxf-88vv.json
osv_dev
-
Source reference
Unverified legacy reference
URL: https://github.com/encode/django-rest-framework/security/advisories/GHSA-33wh-fxxf-88vv
Supplemental source
-
Source reference
Unverified legacy reference
URL: https://github.com/encode/django-rest-framework/commit/148ab6523922d5a0c110f76615935e5220b63029
Supplemental source
-
Source reference
Unverified legacy reference
URL: https://github.com/encode/django-rest-framework
Supplemental source
-
Source reference
Unverified legacy reference
URL: https://github.com/encode/django-rest-framework/releases/tag/3.18.2
Supplemental source
Methodology and review provenance
AI-assisted synthesis based on stored public vulnerability evidence. System validation, approval state, and publication status do not by themselves establish human review of this revision. PatchSiren helps prioritize defensive review and does not prove exposure or remediation on any system.