Bundler 4.0.13 引入了“冷却期”(cooldown)这一安全功能,旨在通过防止立即安装新发布的 Gem 来缓解供应链攻击。由于许多攻击利用了恶意版本发布与开发者不知情安装之间短暂的时间窗口,冷却期功能允许用户设置强制性的老化周期(例如 7 天),在此之前新版本无法被解析。 该功能为可选,且具有高度灵活性,可通过 `Gemfile`、全局设置、环境变量或命令行参数进行配置。它利用了 Rubygems.org v2 索引现已提供的 `created_at` 时间戳。当冷却期生效时,`bundle install` 将跳过尚未达到老化要求的版本,而 `bundle outdated` 则提供对被暂缓更新版本的可见性。 至关重要的是,冷却期包含一个“紧急出口”:用户可以设置 `--cooldown 0` 来立即安装关键的安全补丁或紧急修复程序。此功能补充了现有的双因素认证(2FA)和可信发布等安全措施,增加了一层保护,确保代码在被引入项目之前经过了充分的审查。现有的 `Gemfile.lock` 文件不受影响,确保这一新策略不会意外干扰您的当前环境。