Django数据库框架曝SQL注入漏洞,影响FilteredRelation别名功能

安全公告详细披露了Django框架中存在的SQL注入漏洞。该漏洞存在于特定版本的Django中,当对PostgreSQL数据库使用FilteredRelation并配合特定的字典扩展参数时,恶意构造的列别名可导致SQL注入。

漏洞详情

包管理器: pip 受影响包: Django (pip)

受影响的版本:

  • = 5.2a1, < 5.2.9

  • = 5.1a1, < 5.1.15

  • = 4.2a1, < 4.2.27

已修复的版本:

  • 5.2.9
  • 5.1.15
  • 4.2.27

描述

在Django 5.2(5.2.9之前)、5.1(5.1.15之前)和4.2(4.2.27之前)版本中发现了一个安全问题。FilteredRelation 在列别名上存在SQL注入漏洞,攻击者可以通过向 QuerySet.annotate()QuerySet.alias() 方法传递一个精心构造的字典(使用字典扩展语法作为 **kwargs 参数)在PostgreSQL数据库上实现注入。 较早的、不受支持的Django系列版本(例如 5.0.x, 4.1.x, 和 3.2.x)未经过评估,可能同样受到影响。 Django团队感谢Stackered报告此问题。

参考资料

安全评分

严重级别: 中等 CVSS 总体分数: 4.3 / 10 CVSS v3 向量: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:N

CVSS v3 基础指标:

  • 攻击向量: 网络
  • 攻击复杂度:
  • 所需权限:
  • 用户交互: 需要
  • 影响范围: 未改变
  • 机密性影响:
  • 完整性影响:
  • 可用性影响:

EPSS 分数: 0.009% (第1百分位)

弱点

弱点类型: CWE-89 描述: SQL命令中使用的特殊元素未得到恰当处理(SQL注入)。该产品使用来自上游组件的外部影响输入来构造全部或部分SQL命令,但在发送给下游组件时,未能对可能修改预期SQL命令的特殊元素进行恰当处理或处理不当。

CVE ID: CVE-2025-13372 GHSA ID: GHSA-rqw2-ghq9-44m7 源代码仓库: django/django

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计