Django 安全团队已针对该框架所有受支持版本发布重要更新,修复两个新发现的安全漏洞。此次发布的更新涵盖 Django 6.0.3、5.2.12 和 4.2.29 版本,解决了一个中等严重程度的拒绝服务(DoS)漏洞,以及一个与文件权限配置错误相关的低严重程度问题。
官方强烈建议开发者尽快升级环境,以降低相关安全风险。
CVE-2026-25673:Unicode 归一化引发的潜在拒绝服务攻击
这两个漏洞中影响更突出的是一个 “中等” 严重级漏洞,该漏洞影响
URLField 表单字段。在 Windows 系统中,该字段的 to_python() 方法所采用的处理流程可能被利用,导致服务器资源被大量消耗。根据官方安全公告:“在 Windows 系统上,
urlsplit() 函数会执行 NFKC 归一化(unicodedata.normalize),对于包含特定字符的大体积输入数据,该操作的执行速度会异常缓慢”。这种性能损耗形成了拒绝服务攻击的潜在载体,恶意攻击者可发送构造的恶意输入,导致服务器陷入卡顿。为解决该问题,Django 团队实现了一套简化的协议检测逻辑,完全绕过了 Unicode 归一化流程。使用自定义验证器的开发者需注意:“字段值中的换行符、制表符及其他控制字符,将不再由
URLField.to_python() 处理”。CVE-2026-25674:文件系统权限风险
第二个低严重级漏洞,涉及 Django 在创建新文件或目录时的权限处理机制。此前,该框架的文件系统存储模块和基于文件的缓存后端,均依赖进程的
umask(权限掩码)来控制文件 / 目录权限。安全团队发现,在多线程环境下存在这样的风险:“一个线程临时修改的
umask 会影响其他线程创建文件和目录的操作,导致文件系统对象被赋予非预期的权限”。这可能造成敏感文件被创建时,访问权限设置过于宽松的情况。本次更新修改了这一行为:在目录创建完成后,立即通过
os.chmod() 应用指定的权限配置,不再依赖全局的进程级 umask,消除了这一安全隐患。受影响版本与修复方案
相关补丁已应用于主开发分支,以及所有当前受支持的稳定分支。
| 受影响分支 | 已修复版本 |
|---|---|
| Django main | 已修复 |
| Django 6.0 | 6.0.3 |
| Django 5.2 | 5.2.12 |
| Django 4.2 | 4.2.29 |
总结
- Django 紧急发布补丁修复两类漏洞:Windows 系统下 URLField 引发的 DoS 漏洞(CVE-2026-25673),以及多线程环境下的文件权限漏洞(CVE-2026-25674)。
- DoS 漏洞的核心成因是 Unicode 归一化处理大体积恶意输入时性能异常,修复方式为绕过该归一化流程;权限漏洞则通过改用
os.chmod()直接设置权限,摆脱对umask的依赖。 - 所有受支持版本(6.0/5.2/4.2)均已推出对应修复版本,开发者需尽快升级以规避风险。








发表评论
您还未登录,请先登录。
登录