Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2026-114138— Django REST framework: Accept header with many large quoted parameters burns ~19s of CPU per request in content negotiation

Quick assessment

Affected
encode django-rest-framework
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

Django REST framework 是一个用于构建 Web API 的工具包。在 3.18.2 版本之前, 中的 方法会接受数量无上限且总大小不受限制的 Accept 令牌。与此同时,该文件中的 方法会对每个由攻击者控制的令牌、每个渲染器(renderer)以及强制触发的 406 内容协商,反复调用来自 的 解析逻辑。 远程未认证客户端可以发送大量不同的媒体类型,其中包含带有大量分号的大尺寸引号参数值。这将导致 Django 的参数解析器与 DRF 的重复解析结构消耗不成比例的 CPU 资源。针对任何可访问

CVSS 7.5 · High
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2026-114138

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
Django REST framework: Accept header with many large quoted parameters burns ~19s of CPU per request in content negotiation
Source: CVE Program / CVE List V5
Vulnerability Description
Django REST framework is a toolkit for building Web APIs. Prior to 3.18.2, DefaultContentNegotiation.get_accept_list in rest_framework/negotiation.py accepts an unbounded number and aggregate size of Accept tokens, while select_renderer in that file repeatedly invokes _MediaType parsing from rest_framework/utils/mediatypes.py for each attacker-controlled token, every renderer, and forced 406 renegotiation. A remote unauthenticated client can send many distinct media types containing large quoted parameter values with numerous semicolons, causing Django's parameter parser and DRF's repeated parsing structure to consume disproportionate CPU. Requests to any reachable endpoint can pin synchronous workers for prolonged periods, and concurrent requests can make the service unavailable until the requests stop. This issue is fixed in version 3.18.2.
Source: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Source: CVE Program / CVE List V5
Vulnerability Type
未加控制的资源消耗(资源穷尽)
Source: CVE Program / CVE List V5

Affected Products

Vendor Product Affected Versions CPE Subscribe
encode django-rest-framework < 3.18.2 -

II. Public POCs for CVE-2026-114138

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2026-114138

请登录查看更多情报信息。

Patches & Fixes for CVE-2026-114138 (1)

Vendor Advisories for CVE-2026-114138 (1)

Vendor Pages for CVE-2026-114138 (1)

Same Patch Batch · encode · 2026-10-21 · 3 CVEs total

CVE-2026-114136 7.5 HIGH Django REST framework: JSONParser applies an attacker-named codec to the request stream
CVE-2026-114137 7.4 HIGH Django REST framework: TokenProxy.delete() reports success and revokes nothing

IV. Related Vulnerabilities

V. Comments for CVE-2026-114138

No comments yet


Leave a comment