CVE-2026-39844NiceGUI是一个基于Python的UI框架。在3.10.0版本之前,该框架存在一个安全漏洞。由于PurePosixPath仅将正斜杠识别为路径分隔符,攻击者可以利用Windows系统支持反斜杠的特性,通过在上传文件名中使用反斜杠绕过清理机制。如果应用程序使用file.name构造文件路径,攻击者即可在Windows系统上实现任意文件写入,影响系统完整性。
该漏洞的根源在于跨平台路径处理机制的差异。NiceGUI框架在处理用户上传的文件名时,默认使用了Python的PurePosixPath类进行路径规范化。PurePosixPath严格遵循POSIX标准,仅识别正斜杠(/)作为路径分隔符,将反斜杠(\)视为普通字符。然而,Windows操作系统内核及文件API完全支持反斜杠作为路径分隔符。当应用程序部署在Windows环境下时,攻击者可以构造包含反斜杠的恶意文件名(例如sensitive\..\..\webshell.php)。由于PurePosixPath不处理反斜杠,安全校验逻辑会认为这是一个合法的单文件名而放行。但随后,若应用代码直接使用file.name属性与静态目录路径拼接,Windows API会将反斜杠解析为目录跳转指令。这导致文件被写入到预期目录之外的位置,实现任意文件写入。