Django REST Framework 请求解析大小限制绕过漏洞(CVE-2026-73228)
来源:dev.to — 2026-08-22
📋 概述
作者在研究 Django 请求解析行为时发现,Django 的 DATA_UPLOAD_MAX_MEMORY_SIZE 限制并未在 DRF 的高层 request.data API 上被一致执行:同样的超大请求,走 Django 受保护的 request.body 会抛 RequestDataTooBig,而经 DRF 的 request.data 却能成功解析。原因是 DRF 的解析器可直接消费底层请求流,绕过了先经过受保护 request.body 的路径。该问题以负责任披露上报,编号为 CVE-2026-73228(CVSS 3.1 5.3,Moderate,属资源消耗类),已在 DRF 3.17.2 修复。核心教训:安全控制在一个抽象层实现,若更高层抽象能无意间绕过它就形同虚设。
🔑 核心要点
- 同一份配置,走 Django request.body 抛 RequestDataTooBig,走 DRF request.data 却能解析。
- 根因:DRF 解析器可直接消费底层请求流,绕过了先经受保护路径的大小校验。
- CVE-2026-73228,CVSS 5.3(Moderate),属资源消耗或可用性类,而非代码执行或数据泄露。
- 已在 Django REST Framework 3.17.2 修复,应升级到 >= 3.17.2。
- 教训:要透过开发者实际使用的框架 API 测试安全控制,并一路追踪抽象层。
💡 金句
在一个抽象层实现的安全控制,只有当更高层的抽象无法无意间绕过它时才有效。
👍 0
👎 0
← 返回 dev.to 首页