CVE-2026-114136: Django REST framework: JSONParser applies an attacker-named codec to the request stream

Published Oct 21, 2026
·
Updated

Django REST framework is a toolkit for building Web APIs. From 3.6.4 until 3.18.2, JSONParser.parse in restframework/parsers.py uses the client-supplied Content-Type charset value with codecs.getreader, which accepts byte-transform codecs such as bz2codec rather than only text encodings. A remote unauthenticated client can therefore cause a compressed JSON request body to be expanded after Django has enforced DATAUPLOADMAXMEMORYSIZE against only the wire bytes, allowing a very small request to consume substantial per-worker memory. The default parser set is sufficient, and any reachable endpoint that accepts a JSON body is affected. This issue is fixed in version 3.18.2.

Affected Software

1 affected component
pypi/djangorestframework>=3.6.4<3.18.2

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade Django REST framework to a version that resolves this vulnerability.

    Fixed in 3.18.2

Event History

Oct 21, 2026
CVE Published
via MITRE·08:02 PM
Data Sourced
via MITRE·08:02 PM
DescriptionSeverityWeakness

Frequently Asked Questions

1

Which deployments are exposed?

Deployments using Django REST framework versions from 3.6.4 through 3.18.2 are affected when they have a reachable endpoint that accepts a JSON request body. The default parser configuration is sufficient; no custom parser configuration is required.

2

What does an attacker need to exploit this issue?

An attacker needs only network access to a reachable JSON-accepting endpoint. Authentication, user interaction, and special privileges are not required.

3

What is the operational impact?

A client can submit a small compressed request body with an attacker-selected charset codec, causing it to expand in memory after Django's upload-size limit has checked only the compressed wire size. This can consume substantial memory in individual workers and lead to denial of service.

4

How can this be remediated?

Upgrade Django REST framework to version 3.18.2, which fixes the issue.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203