PostgreSQL FilteredRelation SQL注入CVE-2025-13372
Django 是一款由 Python 编写的高级 Web 框架,遵循电池已内置(Batteries Included)的设计理念,为互联网上部分大型网站提供支持。
一、基本情况
Django 项目旨在帮助开发者快速构建安全、可扩展、维护性强的 Web 应用,无需重复造轮子,它是全球最主流的 Python Web 框架之一。
Django是开箱即用企业级Web框架,适合追求开发效率、安全性和可维护性Web项目,适配内容管理、后台系统、中大型API服务等场景。

栋科技漏洞库关注到 Django 框架受影响版本中存在漏洞,追踪为CVE-2025-13372和CVE-2025-64460,CVSS 3.X评分分别为4.3和7.5。
二、漏洞分析
CVE-2025-13372
CVE-2025-13372漏洞是存在于 Django 框架受影响版本中的安全漏洞,漏洞可能导致PostgreSQL FilteredRelation功能出现SQL注入风险。
攻击者利用FilteredRelation在列别名中执行恶意查询,通过精心构造的输入注入恶意SQL,导致数据库信息泄露、篡改或执行非授权操作。
攻击者可使用适当构建的字典,通过字典扩展的方式,将 kwargs 传递给 PostgreSQL 上的 QuerySet.annotate() 或 QuerySet.alias()。
PostgreSQL环境使用QuerySet.annotate()或QuerySet.alias()方法并传递包含恶意构造的字典(使用字典展开)作为kwargs导致SQL注入。
CVE-2025-64460
CVE-2025-64460是存在于Django多个版本中的算法复杂度漏洞,存在于 django.core.serializers.xml_serializer.getInnerText() 方法中。
具体来说,该漏洞源于 django.core.serializers.xml_serializer.getInnerText() 中的算法复杂性问题,使攻击者可以利用 XML 输入发起攻击。
漏洞出现在 XML Deserializer 处理输入时的文本提取阶段,这一拒绝服务(DoS)漏洞影响 XML 序列化器,对服务可用性构成重大风险。
getInnerText() 方法在处理复杂或嵌套结构的 XML 输入时,存在算法性能问题,导致运算复杂度异常升高。
漏洞因递归收集文本节点时的重复字符串拼接操作导致超线性计算,最终造成服务降级或中断。
攻击者可通过发送特制 XML 输入,远程触发 Django 应用服务端 CPU 和内存资源耗尽,造成拒绝服务攻击(DoS),影响应用可用性。
三、影响范围
Django 5.2 < 5.2.9
Django 5.1 < 5.1.15
Django 4.2 < 4.2.27
不受支持的旧版本(如 5.0.x、4.1.x 和 3.2.x)可能也受影响,但尚未明确评估。
四、修复建议
Django >= 5.2.9
Django >= 5.1.15
Django >= 4.2.27
五、参考链接
管理员已设置登录后刷新可查看