本文面向:在 Vercel 上部署的开发者和运维人员、把生产环境密钥(API 密钥、数据库凭据、签名密钥)放在环境变量中的团队、Google Workspace 管理员,以及使用以同样方式运作的 PaaS(替你运行应用的平台)的人。
本文依据 Vercel 的官方安全公告和文档撰写,不涉及攻击手法或入侵指标(IoC)的具体值。
Vercel 用户今天该做什么
查看是否收到 Vercel 的消息,没有收到也要继续
Vercel 表示,已直接联系受影响的客户,并建议立即轮换凭据。它在4月22日的更新中补充说,扩大审查又发现了少量遭到入侵的账户,这些账户也已收到通知。首先确认哪些邮箱会收到 Vercel 的消息(团队所有者、账单联系人)。
但 Vercel 把下面的步骤作为无论如何都应遵循的最佳做法。没有收到 Vercel 的消息,不是什么都不做的理由。
列出未标记为敏感的环境变量,先轮换其中的密钥
Vercel 要求把未标记为敏感的环境变量——API 密钥、令牌、数据库凭据、签名密钥等——视为可能已暴露,并优先轮换。
在控制台的环境变量表中,每个变量都带有 Config(保存后可以显示值)或 Secret(保存后无法显示值)标签。放在 Config 标签下的密钥就是今天的工作清单。除了项目变量,也要检查团队级的共享变量。
按这个顺序轮换:添加新密钥并重新部署,然后让旧密钥失效
Vercel 的文档给出了不停机轮换的顺序:
- 在第三方服务(数据库或 API 提供商)中签发新的凭据,暂时保留旧的
- 更新 Vercel 环境变量
- 重新部署(如果是团队级变量,所有用到它的项目都要重新部署)
- 确认正常运行后,让旧凭据失效
只修改变量的话,正在运行的部署仍然使用旧值,而且只有第4步才能让泄露的值失去作用。
把新值存为 Secret
把你新生成的值存为 Secret(只写)。Vercel 在公告中表示,敏感功能可以保护密钥值今后不被读取。
截至2026年9月30日,文档说明 Secret 的值在保存后会被隐藏,需要通过提供新值来修改;另外,Secret 过去只限于 Production 和 Preview,现在 Development 也可以使用。哪些内容该放在哪里,见本文后面的对比。
删除任何项目之前先轮换
Vercel 明确表示,删除项目或账户不足以消除风险,因为泄露的密钥在它能打开的数据库或 API 那里仍然有效。如果你要清理旧项目或者离开 Vercel,先在提供商那里让密钥失效,然后再删除。
检查活动日志和最近的部署
Vercel 建议检查账户和环境的活动日志(在控制台或通过 CLI),看是否有可疑活动,并调查最近的部署中是否有意外或看起来可疑的内容。它表示,有疑问的部署应删除。也可以用同一份日志查找有人查看过环境变量值的迹象。
把部署保护(Deployment Protection)设为 Standard 或更高,并轮换其令牌
Vercel 建议至少把部署保护设为 Standard,如果使用了部署保护令牌,则轮换这些令牌。Vercel 的文档把 Standard 描述为适合大多数项目的推荐选项:它保护预览 URL 和每次部署的 URL,而当前的生产 URL 保持公开。
为 Vercel 账户开启多因素认证
Vercel 建议使用身份验证器应用或通行密钥(passkey)进行多因素认证。为什么它们比短信更好,参见如何选择多因素认证。
Google Workspace 管理员:搜索公告中列出的 OAuth 应用
Vercel 公布了该 AI 工具的 Google Workspace OAuth 应用的标识符,并建议 Google Workspace 管理员和 Google 账户所有者立即检查是否使用了该应用。
据 Vercel 称,该 OAuth 应用遭到了更大范围的入侵,可能影响到许多组织中的数百名用户——因此不使用 Vercel 的组织也可能在影响范围内。请从下方信息来源中链接的 Vercel 公告获取该标识符。
限制员工连接的 AI 工具和 OAuth 应用
据 Vercel 称,攻击者利用对第三方 AI 工具的访问权限,接管了该员工的 Google Workspace 账户,并从那里进入了其 Vercel 账户。
员工用“使用 Google 登录”或“允许访问云端硬盘”把好用的 AI 工具连接到公司账户,这在每个组织中每天都在发生。下面是 Google Workspace 管理员今天就可以修改、以降低这种风险的设置。
列出连接到公司账户的第三方应用
Google 的管理员帮助页面“控制哪些应用可以访问 Google Workspace 数据”说明,管理控制台会显示哪些应用访问过组织数据、哪些用户授权了它们,以及每个应用请求的 OAuth 范围(scope)。
导出清单,标记出没人说得清用途的应用,以及拥有可读取整个云端硬盘或 Gmail 的范围的应用。
屏蔽不用的应用,缩小保留应用的权限
同一页面说明,每个应用都可以设为“可信”“受限”“特定 Google 数据”或“已屏蔽”。把你决定保留的应用限制为只能访问它需要的数据,其余的屏蔽掉。
不让员工随意连接未经配置的应用
你可以设置组织策略,决定用户是否可以授权管理员尚未配置的第三方应用。只允许请求基本登录信息的应用,就能让每一个新的 AI 工具都先经过管理员审查。
对于 Gmail 和云端硬盘,你还可以单独限制高风险的范围,例如发送邮件或删除文件。
把生产环境的管理员账户与连接 AI 工具的账户分开
这是本站的建议。在这次事件中,连接了 AI 工具的 Google 账户成了进入 Vercel 账户的途径。拥有生产环境或托管平台管理权限的人,应考虑不要把试用的 AI 工具连接到用来登录那些平台的账户。如果必须连接,请使用一个对业务数据访问受限的单独账户。
发生了什么(依据 Vercel 的公告)
以下内容均依据 Vercel 的安全公告“Vercel April 2026 security incident”。Vercel 多次更新了这份公告,4月24日之后改为仅在有重要更新时才更新。
2026年4月19日
Vercel 公开部分 Vercel 内部系统遭到未经授权的访问,表示已请来事件响应专家并通知了执法机关,同时公布了一个 OAuth 应用标识符,以便其他组织检查自己的环境。4月19日(之后的更新)
Vercel 公布攻击的起点(一个被入侵的第三方 AI 工具),并补充建议。4月20日
Vercel 明确了“遭到泄露的凭据”的定义并补充建议。同一天,它表示已验证其 npm 包没有被入侵,补充了多因素认证的指引,并发布了产品改进。4月22日
Vercel 公布扩大审查的结果:在这次事件中另有少量账户遭到入侵,已通知这些账户;另外还有少量客户账户出现了遭入侵的迹象,但看起来与这次事件无关,已对其采取了具体的纠正措施。4月23日
Vercel 进一步澄清其调查结果。4月24日
没有更新。此后 Vercel 表示,如有重要更新,将提醒受影响的客户并更新公告。
- 起点
- 一名 Vercel 员工使用的第三方 AI 工具被入侵。该工具的 Google Workspace OAuth 应用在许多组织中遭到了更大范围的入侵
- 路径
- 接管员工的 Google Workspace 账户 → 员工的 Vercel 账户 → 一个 Vercel 环境 → 在系统间移动,枚举并解密环境变量
- 被拿走的内容
- 一小部分客户的未标记为敏感的环境变量(可解密为明文的那些)
- 进一步的发现
- 在这次事件中另有少量账户遭到入侵,现已通知。另外还有少量账户出现了遭入侵的迹象,看起来与这次事件无关,也似乎不是源自 Vercel 的系统
- 不受影响
- Vercel 发布的 npm 包(已与 GitHub、Microsoft、npm 和一家安全公司共同确认)
- Vercel 的评估
- 根据行动速度和对 Vercel 产品 API 的深入了解,Vercel 认为攻击者非常老练。它正在与事件响应公司、业界同行和执法机关合作
- 产品变更
- 改进环境变量管理(更严格的默认设置、更完善的保护措施、产品内的说明),提供团队范围的环境变量管理和安全概览,以及更易用的活动日志
阅读提示:没有公布数量,本文也不写出工具名称
Vercel 对受影响客户的描述只有“一小部分”和“少量”;它没有公布具体数量。本站不刊登组织没有公开的数字。
Vercel 的公告中写出了该 AI 工具厂商的名称,但按照本站的方针,我们只写出公开事件的组织名称,其他各方用角色来描述(“一个第三方 AI 工具”)。要检查你自己的组织,请使用 Vercel 公告中的 OAuth 应用标识符,而不是名称。
损害本可以在哪个环节被阻止
1. 第三方 AI 工具
其 OAuth 应用遭到大范围入侵
↓→
有帮助的设置
管理员限制可连接的应用及其范围
2. 员工的 Google 账户
被接管;被用来进入 Vercel
↓→
有帮助的设置
生产环境管理员账户不连接试用工具
3. Vercel 环境
环境变量被枚举
↓→
客户能做什么
客户无法阻止这一步;值是否泄露取决于第4步中的类别
4a. 可读(Config)
被解密,以明文形式被拿走
4b. 只写(Secret)
Vercel 只报告了 4a 遭到泄露
可以放在 Config 中的内容(值可以显示)
- 公开也无妨的值:公开的 URL、功能开关、日志级别
- 本来就会发送到浏览器的值:例如所有以
NEXT_PUBLIC_开头的变量 - 需要读回的设置:区域名、存储桶名——单独无法打开任何东西的内容
应该放在 Secret 中的内容(值无法显示)
- API 密钥和访问令牌:支付、邮件发送、AI API
- 数据库连接字符串和密码
- 签名和加密密钥:会话和 JWT 签名、Webhook 验证密钥
- 外部服务的管理员凭据:云访问密钥等
本站的看法:你以后能显示的值,入侵者也能读到
让一个环境变量保持可读,理由几乎总是为了以后能查看这个值。这次事件表明,同一个类别对任何进入平台内部的人也是可读的。Vercel 报告遭到泄露的变量,正是这个类别。
只需要一个判断标准:你以后还需要在这个界面上读回这个值吗?如果不需要,就设为 Secret。你想查看的密钥,应该放在你真正保管它的地方——密码管理器或提供商的控制台——而不是在部署平台上留一份可读的副本。
Vercel 的文档还提供了一项团队策略 Separate Production Secret Values,要求 Production 的 Secret 与 Preview 和 Development 中的不同。这是又一项让泄露的预览环境密钥无法在生产环境中使用的设置。
同样的道理也适用于其他 PaaS 和 CI 系统。每一个以可读形式保存你密钥的服务,都会成为与你实际管理的地方分开的第二个存放位置。密钥该放在哪里、如何拆分的基础知识,参见.env 文件和 API 密钥为什么有风险。
2026年5月,TanStack、Nx Console 和 GitHub 也发生了一连串从开发者工具开始的入侵。那次的起点是代码的分发渠道(npm 包和编辑器扩展),关于“一个被盗的密钥无法单独发布”的结构的教训,参见TanStack、Nx Console 与 GitHub 连锁事件后开发者需要检查什么。
在 Vercel 事件中,起点不是代码,而是通过 OAuth 连接的 SaaS 的权限。CI 中运行的工具本身成为起点的案例,参见Trivy 供应链攻击。
信息来源(公开资料)
本文中的事实来自以下公开资料。不涉及攻击手法、IoC 值和识别攻击者的信息。
- Vercel,“Vercel April 2026 security incident”(安全公告,2026年4月19日发布,4月24日更新)— vercel.com
- Vercel Docs,“Sensitive environment variables”(Config 和 Secret 类型,2026年8月28日修订版)— vercel.com
- Vercel Docs,“Rotating environment variables”(不停机轮换)— vercel.com
- Vercel Docs,“Deployment Protection”(Standard Protection)— vercel.com
- Google Workspace 管理员帮助,“Control which apps access Google Workspace data”— knowledge.workspace.google.com
更新记录
2026-09-30:初版,依据 Vercel 的安全公告(4月24日修订版)和截至2026年9月30日的 Vercel 官方文档。如 Vercel 更新公告,本页将随之更新。
延伸阅读
- 密钥应该放在哪里:.env 文件和 API 密钥为什么有风险 / 什么是 .env 文件?
- 其他从开发者工具开始的事件:TanStack、Nx Console 与 GitHub 的连锁事件 / Trivy 供应链攻击后 CI 用户该做什么
- 通过有效凭据发生的入侵:2026年的入侵来自有效凭据
- 保护账户:如何选择多因素认证
- 不让密钥进入仓库:用 gitleaks 在提交前拦截密钥
- 2026年的其他事件:2026年的数据泄露与网络攻击
FAQ
QVercel 事件中泄露了什么?
根据 Vercel 的公告,一小部分客户存储在 Vercel 上、未标记为“敏感”(sensitive)的环境变量(可解密为明文的那些)遭到泄露。Vercel 要求客户把这些值——API 密钥、令牌、数据库凭据、签名密钥等——视为可能已暴露,并优先轮换。
Q怎么知道自己是否受影响?
Vercel 表示,已联系受影响的那部分客户并建议立即轮换凭据,并且也通知了在扩大审查中发现的少量其他账户。但 Vercel 把检查并轮换非敏感环境变量、检查活动日志和最近的部署,列为所有人都应遵循的最佳做法。如果你把密钥放在了可读的类别里,即使没有被联系,轮换它们也是稳妥的选择。
Q标记为敏感(Secret)的环境变量安全吗?
Vercel 公告中说遭到泄露的是非敏感的环境变量。Vercel 表示,敏感功能可以保护密钥值今后不被读取。截至2026年9月30日,Vercel 的文档把环境变量分为“Config”(保存后可读)和“Secret”(保存后只写),已有的敏感变量被视为 Secret。
Q删除项目或账户就够了吗?
不够。Vercel 明确表示,删除 Vercel 项目或账户不足以消除风险,因为泄露的密钥仍可能让人访问生产系统。它要求在删除任何东西之前先轮换密钥。
Q入侵从哪里开始?
据 Vercel 称,起点是一名 Vercel 员工使用的第三方 AI 工具被入侵。该工具的 Google Workspace OAuth 应用遭到了更大范围的入侵,可能影响到许多组织中的数百名用户。Vercel 建议 Google Workspace 管理员和 Google 账户所有者立即检查是否使用了其公告中公布的 OAuth 应用标识符。
QVercel 的 npm 包(如 Next.js)安全吗?
Vercel 表示,它与 GitHub、Microsoft、npm 和一家安全公司合作,确认 Vercel 发布的 npm 包没有被入侵,也没有被篡改的证据。