Django高危SQL注入漏洞CVE-2025-57833
Django 是一个由 Python 编写的开源 Web 后端框架,高级Python Web框架采用了 MTV 架构模式,适用于快速开发安全和可维护的网站。
一、基本情况
Django是一个全栈框架,适合开发从简单应用到复杂系统的各种Web项目,该产品的设计注重可重用性、快速开发和高效的数据库操作。
Django 提供了全栈开发所需的工具,提供了丰富的内置功能,如自动化的管理界面、数据库模型、URL路由、表单处理、验证、认证等。
栋科技漏洞库关注到 Django 框架中的存在一个SQL注入漏洞,该漏洞现在已经被追踪为CVE-2025-57833,该漏洞的CVSS 3.x 评分7.1。
二、漏洞分析
CVE-2025-57833漏洞是在Django框架4.2.24之前的4.2版本、5.1.12之前的5.1版本和5.2.6之前的5.2版本中发现的一个高危SQL注入漏洞。
该漏洞源于FilteredRelation功能在处理列别名时,没有对通过kwargs传递给QuerySet.annotate()或QuerySet.alias()的字典进行充分验证。
FilteredRelation在列别名中进行SQL注入,使用精心编制的字典进行字典扩展,因为**kwargs传递QuerySet.notate()或QuerySet.alias()。
攻击者可以利用这一漏洞,通过构造恶意字典,利用字典展开特性,将恶意输入注入SQL查询的列别名部分,从而绕过常规SQL注入防护。
攻击者成功利用该漏洞可能会读取、修改或删除数据库中的敏感数据,甚至执行任意SQL命令,从而可能导致数据泄露或完全控制数据库。
三、影响范围
4.2 <= Django < 4.2.24
5.1 <= Django < 5.1.12
5.2 <= Django < 5.2.6
四、修复建议
Django >= 4.2.24
Django >= 5.1.12
Django >= 5.2.6
五、参考链接
