CVE-2026-21860CVE-2026-21860是Werkzeug web应用库中的一个中等严重性安全漏洞。该漏洞影响Werkzeug 3.1.5之前版本,存在于safe_join函数中。该函数在处理Windows设备名称时存在安全缺陷,允许攻击者通过在路径中插入带有文件扩展名或尾随空格的Windows保留设备名称(如CON、AUX等)来绕过安全检查,访问本不应被访问的文件。在Windows系统中,这些特殊设备名称在任何目录下都隐式存在且可读,Windows系统还允许它们附加任何文件扩展名(如CON.txt)或尾随空格(如CON )。攻击者可以利用此漏洞读取服务器上的敏感文件,如配置文件、源代码或其他机密数据。CVSS 3.1评分为5.3,属于中等严重程度,攻击向量为网络,无需认证和用户交互即可利用。
Werkzeug的safe_join函数旨在安全地连接文件路径,确保返回的路径在指定的基础目录内。然而,在3.1.5之前的版本中,该函数未能正确过滤Windows保留设备名称。Windows系统保留了一些特殊设备名称(如CON、PRN、AUX、NUL、COM1-9、LPT1-9等),这些设备在所有目录中隐式存在且可读。攻击者可以通过以下方式利用此漏洞:1) 使用带文件扩展名的设备名称(如CON.txt、NUL.log);2) 使用带尾随空格的设备名称(如CON 、AUX )。由于safe_join函数未正确验证这些特殊路径,攻击者可以构造恶意请求访问基础目录之外的文件。例如,攻击者可能通过请求类似/download?file=CON.txt的路径来读取服务器上的敏感文件。此漏洞仅限于Windows平台,因为Linux和其他操作系统不存在这种特殊的设备名称行为。