摘要
Pip 26.1 已发布,带来了两项功能,解决了 Python 打包生态中长期存在的痛点:依赖冷却(Dependency Cooldown),即在软件包发布后的等待期内禁止安装;以及对 PEP 751" 规定的 pylock.toml" 锁定文件的实验性支持。此外还修复了两个 CVE 漏洞,并停止支持 Python 3.9。 Pip 提交者 Richard Si" 写道":在当今世界,针对上游依赖项目的供应链攻击愈发频发,开发者亟需一种方式为自己争取时间来检测和应对这些安全事件。 冷却机制的原理很简单。假设攻击者入侵了一个上游软件包,在正常情况下,所有执行 pip install 的 CI 流水线和开发者工作站在几小时内就会拉取到恶意版本。而启用 --uploaded-prior-to=P7D 参数后,pip 只会拉取在 PyPI 上已存在至少七天的版本。这为社区留出充足时间,在恶意版本接入构建流程前及时发现入侵行为。 该功能直接借鉴了 William Woodruff 极具影响力的文章《我们都应该使用依赖冷却》"。Woodruff 分析了十起著名的供应链攻击,得出了令人信服的结论:10 起攻击中有 8 起的可利用时间窗口期不足一周。设置 7 天的冷却期便能阻止绝大多数攻击到达终端用户。将冷却期延长至 14 天可以阻止几乎所有攻击(其中的一起除外)。 近期发生的事件既说明了冷却机制的必要性,但也体现出它的局限性。Essential Plugin 供应链攻击"植入了一个后门,潜伏了八个月,最终在 40 万个 WordPress 安装环境中激活。XZ Utils 后门更是历经两年时间积累信任,攻击者才正式发起行动。七天的冷却期无法阻止这些特定攻击,但能拦截更为常见的模式——即被入侵的软件包在发布后的几小时内就被拉入 CI 流水线。 Si 指出了一个重要的利弊权衡:冷却期也会耽误正规的安全漏洞修复。使用此功能的团队应将其与 Dependabot 或 pip-audit 配合使用,确保关键补丁不会被卡在冷却窗口之后。 另一项重大新增功能是对 pylock.toml 的实验性支持。PEP 751 早在一年前就将该锁定文件格式制定为正式标准,但在此之前,只有 uv 工具支持通过该文件安装依赖。现在启用 -r 参数可读取
摘要可能不完整,可查看原文