Django XML序列化器算法漏洞引发拒绝服务攻击风险

29 阅读2分钟

CVE-2025-64460:Django XML序列化器文本提取漏洞可导致拒绝服务攻击

漏洞概述

CVE-2025-64460 是Django Web框架中发现的一个安全漏洞,评级为中等严重性。该漏洞存在于Django的XML序列化组件中,具体位于 django.core.serializers.xml_serializer.getInnerText() 函数内。

技术细节

漏洞成因

漏洞的核心问题是算法复杂性缺陷getInnerText() 函数在递归收集XML文本节点时,使用了重复的字符串连接操作。这种操作方式在处理恶意构造的、深度嵌套或结构特殊的XML输入时,会导致计算复杂度呈超线性增长

攻击影响

远程攻击者可以利用此缺陷,向启用了XML反序列化功能的服务提交特制的XML数据。成功利用此漏洞将导致:

  • CPU资源耗尽
  • 内存资源耗尽
  • 最终引发拒绝服务(DoS),造成服务性能严重下降或完全中断。

漏洞的弱点被归类为 CWE-407:低效的算法复杂性

受影响版本

该漏洞影响了Django的多个主要版本系列:

  • Django 5.2系列: 从 5.2a1 到 5.2.8 的所有版本均受影响。
  • Django 5.1系列: 从 5.1a1 到 5.1.14 的所有版本均受影响。
  • Django 4.2系列: 从 4.2a1 到 4.2.26 的所有版本均受影响。

请注意:官方已不再提供支持的早期Django系列(例如 5.0.x、4.1.x 和 3.2.x)未经过评估,但也可能受到此漏洞的影响

解决方案与修复

Django团队已发布安全更新以修复此漏洞。

已修复的版本

用户应立即升级到以下已修复的安全版本:

  • Django 5.2.9
  • Django 5.1.15
  • Django 4.2.27

补丁信息

修复该漏洞的代码更改(补丁)可以在Django项目的代码仓库中找到,主要涉及对 xml_serializer.py 文件中文本提取逻辑的优化。

致谢与参考

Django团队感谢 Seokchan Yoon 报告了此安全问题。

官方安全公告与参考链接: