npm 对可绕过 2FA 的细粒度访问令牌实施限制

npm 宣布限制可绕过双因素认证(2FA)的细粒度访问令牌,这类令牌将无法再执行创建令牌、修改包权限、管理组织等敏感操作。此前,一旦此类令牌泄露,攻击者可直接控制账户并植入恶意代码,这是 npm 生态最危险的攻击路径之一。

一句话看懂:npm 宣布限制可绕过双因素认证(2FA)的细粒度访问令牌,这类令牌将无法再执行创建令牌、修改包权限、管理组织等敏感操作。此前,一旦此类令牌泄露,攻击者可直接控制账户并植入恶意代码,这是 npm 生态最危险的攻击路径之一。

事件核心:发生了什么

7 月 31 日,GitHub Changelog 发布公告,npm 对细粒度访问令牌(Granular Access Tokens, GATs)实施新限制。凡被配置为“绕过 2FA”的 GATs,今后不能再执行敏感操作,包括创建或删除令牌、修改包访问权限与维护者、调整 trusted publishing 配置,以及管理组织/团队成员和包授权。这些操作现在必须触发交互式 2FA 验证。

此次限制仅针对 npm 的细粒度访问令牌,不影响 GitHub Personal Access Tokens、GitHub App tokens 或 Actions 中的 GITHUB_TOKEN。公告还预告了下一步:2027 年 1 月计划让 2FA-bypass 令牌失去直接发布权,仅保留读取私有包和暂存发布的能力,最终发布需维护者通过 2FA 确认。

为什么重要

npm 是全球最大的开源包注册表之一,也被广泛用于 AI 工具链的依赖分发。过去,攻击者一旦拿到一个跳过 2FA 的令牌,就能添加维护者、铸造新令牌,进而对热门包实施供应链投毒,影响面往往覆盖成千上万的下游项目。此次变更切断了“令牌本身即是账户控制权”的路径,相当于把凭据泄露后的横向移动能力大幅收窄。

从生态角度看,这是 npm 继 7 月 8 日宣布弃用 2FA-bypass 令牌后的实质推进。它表明平台正将安全重心从“登录时验证一次”转向“敏感操作持续验证”,这一思路对 Python 的 PyPI、Rust 的 crates.io 等同类生态也有参考意义。

对用户/开发者/创作者的影响

如果你维护 npm 包或管理组织,需要尽快自查现有自动化流程中是否使用了 2FA-bypass 的 GATs。涉及修改包权限、管理成员、创建令牌等操作的脚本将不再生效,必须改为交互式操作并完成 2FA 验证。对于自动发布流水线,建议尽早迁移到 trusted publishing(基于 OIDC)或 staged publishing,而不是继续依赖可绕过 2FA 的令牌。

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

普通包使用者不直接受这次改动影响,但安全性提升意味着依赖链被投毒的概率降低,这是一项隐性收益。对企业和开源维护者而言,短期内需要投入一些迁移成本,但属于必要且方向明确的合规动作。

值得关注的后续

首先,2027 年 1 月将生效的“取消直接发布权”是否如期落地,值得持续跟踪;若延期或调整,说明社区迁移压力比预期大。其次,GitHub 是否会配合推出更便捷的迁移工具或 CLI 支持,这决定了中小维护者的迁移速度。最后,其他包注册表(如 PyPI、crates.io)是否跟进类似的 2FA 限制策略,将反映出整个开源供应链对凭据安全的态度是否正在统一。

来源:GitHub Changelog

celebrityanime
celebrityanime
文章: 16276

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注