PatchSiren

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.