IPBUF安全漏洞报告
English
CVE-2025-66221 CVSS 5.3 中危

CVE-2025-66221: Werkzeug safe_join函数Windows设备名称路径遍历漏洞

披露日期: 2025-11-29

漏洞信息

漏洞编号
CVE-2025-66221
漏洞类型
路径遍历/拒绝服务
CVSS评分
5.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Werkzeug

相关标签

CVE-2025-66221Werkzeug路径遍历拒绝服务WindowsWSGI

漏洞概述

Werkzeug是Python生态中广泛使用的WSGI Web应用库。在3.1.4之前的版本中存在路径遍历漏洞,源于safe_join函数对Windows特殊设备名称处理不当。该函数允许路径段包含CON、AUX等Windows保留设备名,在send_from_directory等文件服务功能中被调用。攻击者可通过构造特殊路径请求,在Windows环境下触发文件读取无限挂起,导致应用拒绝服务。此漏洞无需认证即可远程利用,但仅影响Windows部署环境。

技术细节

safe_join函数本应确保文件路径在指定目录内,但其验证逻辑存在缺陷,未正确过滤Windows设备名称。当路径以NUL等特殊设备名结尾时,函数返回看似合法的路径,导致send_from_directory打开文件句柄。由于Windows设备文件读取会阻塞,应用线程将陷入等待状态,形成拒绝服务。攻击者可通过发送包含设备名的URL路径触发此条件,无需特殊权限或用户交互。

攻击链分析

STEP 1
1
攻击者识别运行在Windows上的Werkzeug应用
STEP 2
2
构造包含Windows设备名称的路径遍历请求
STEP 3
3
发送恶意请求触发safe_join函数
STEP 4
4
应用打开设备文件并无限期挂起
STEP 5
5
持续请求导致线程耗尽,形成DoS

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests target = 'http://target.com' path = '/static/..%5C..%5CAUX' response = requests.get(target + path)

影响范围

Werkzeug < 3.1.4

防御指南

临时缓解措施
在完成官方补丁部署前,可通过Web应用防火墙规则阻止包含Windows保留设备名的请求路径

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表