astral 团队在 uv 0.12.18 的更新公告中,公开了一个仅影响 windows 平台的 wheel 安装路径穿越问题。这个版本新增校验规则,禁止把归一化后指向 windows 绝对路径的归档条目写入安装目标,同时修正了相对路径被错误重建为绝对路径的处理逻辑。官方明确说明,本次安全问题仅涉及 windows 系统,其他平台完全不受影响。

来源:Astral uv 官方更新记录
路径穿越风险大多出现在安装器解压第三方归档包的环节:如果归档内的成员文件名带特殊路径跳转段,安装程序又没按目标系统的规则做校验,就可能把文件写入预设安装目录之外的位置。uv 这次的修补点集中在 wheel 安装和归档路径归一化环节,大家不需要修改项目里的依赖声明,只要升级工具版本、重新走一遍安装流程就能完成修复。
这次更新完全可以按普通维护版本处理,不属于依赖解析规则的变动。官方没有声称所有 Windows 环境的 uv 都已经出现过文件覆盖问题,也没有把风险范围扩展到 macOS 或 Linux。用 Windows 的团队可以先核对 CI 流水线和开发机上的 uv 实际版本,再安排升级;使用其他操作系统的项目,也可以按照自己的维护策略评估要不要更新。

来源:Astral uv 官方更新记录
这次的更新记录还新增了 uv pip install 与 uv pip sync 的 --check 选项,开启后只会上报计划执行的变更,不会改动当前环境,同时给部分命令新增了 JSON 输出能力。这些功能和安全修复同属一个版本,但都是独立的功能增强。如果自动化流水线要对接 JSON 输出,一定要先固定 uv 版本,提前验证所有输出字段,不要把没经过测试的预览新格式直接用到生产环境做逻辑判定。
从日常维护流程来看,工具链的安全更新最好同步纳入项目的开发环境配置和 CI 镜像,不要只在个人电脑上临时升级。团队可以先在 Windows 测试任务里重跑一遍依赖安装,确认锁文件和最终安装结果和之前完全一致再全量推进;跨平台项目最好分别留存不同操作系统、对应 uv 版本和当时的依赖解析结果,后续出问题也方便追溯。











