配了三年Background Fetch,今天才发现它从来没绕过CORS——Chrome 154把这件事彻底修了

你有没有想过:Background Fetch API 背后藏着一个持续了三年多的安全漏洞,让任何网页都能把你的浏览器变成僵尸网络节点。Chrome 154 终于把这件事修了。

这个问题从哪来的

Background Fetch 是 Chrome 在 2019 年推出的 API,设计初衷很简单:大文件下载时,即使关掉浏览器也能继续。但它有个特权——不执行 CORS 检查。

正常情况下,你的网页 fetch 一个跨域资源,浏览器会检查目标服务器是否允许这个请求。但 Background Fetch API 跳过了这步,直接把请求发出去。

这意味着:恶意网站可以在你不知情的情况下,用你的浏览器向任意目标发请求,而且请求会带着你的 IP 地址、Cookie 信息。

三年没人修,直到有人把漏洞公开

这个漏洞在 2022 年就被独立安全研究员 Lyra Rebane 报告了。Google 给它标记了 P1/S2——内部第二高优先级。但 42 个月过去了,一直没修。

直到 2026 年 5 月,Google 自己把漏洞报告设成了「已修复」——但代码根本没动。14 周后(2026 年 5 月 20 日),报告自动解锁,技术细节和 PoC 代码全部公开。攻击门槛瞬间从「需要安全研究员级别的知识」降到了「Copy Paste」。

漏洞利用方式简单得荒谬:

// 恶意网站执行的代码
navigator.serviceWorker.register("/sw.js");

// Service Worker 里:
setInterval(() => {
  const bf = new BackgroundFetch({ icons: [], title: "update" });
  bf.fetch("/beacon").then(() => bf.abort());
}, 20000);

每 20 秒创建一个 Background Fetch,然后立刻 abort。这个循环重置了 Service Worker 的生命周期计时器,导致它永远不会被销毁。你的浏览器就这样被一台持久化、隐形的僵尸节点接管了——关掉浏览器、重启设备都没用。

Chrome 154 修了什么

Chrome 154(2026 年 9 月 9 日稳定版)给 Background Fetch 加上了完整的 CORS 检查。

从 Chrome 154 开始,Background Fetch 请求会经过和普通 fetch 一样的安全策略检查,包括:

  • CORS 跨域限制
  • Local Network Access 检查(防止攻击本地网络设备)

如果目标服务器没有显式允许,跨域 Background Fetch 请求会直接被浏览器拦截。

你现在能做什么

Chrome 154 正式发布前,以下是防御措施:

1. 检查你的站点有没有注册陌生的 Service Worker

打开 Chrome DevTools → Application → Service Workers,看有没有不是你代码的 SW。生产域名上出现未知 SW 是严重告警。

2. 加上 Content-Security-Policy worker-src 限制

Content-Security-Policy: worker-src "self";

这会阻止第三方脚本在你的域名下注册 Service Worker,是目前最有效的缓解手段。

3. 强制 HTTPS

Service Worker 只能在 HTTPS 下注册,验证你的所有子资源都走了 TLS。

4. 审计跨域请求

检查你的站点有没有主动发起跨域 Background Fetch 请求,确保是业务需要的,并且在 Chrome 154 之前不会成为攻击面。

这次修复意味着什么

这不是一个普通的功能更新,是一个被压了三年、影响数十亿用户的浏览器安全漏洞。Background Fetch 的低使用率(Chrome 团队称「exceptionally low」)可能是它一直没被修的原因之一——但低使用率不等于无害。PoC 代码已经公开,任何人都可以用了。

Chrome 154 之后,Background Fetch 从一个「有特权的绕过工具」变回了正常的浏览器 API。这个修复也再次说明:Service Worker 相关 API 的安全边界比想象中脆弱,任何给 Service Worker 加特权的设计都需要谨慎。


下一步行动:

  • 立即检查你的站点是否有陌生 Service Worker
  • 如果你的站点用了 Background Fetch,测试在 Chrome 154 beta 下的行为
  • 加上 CSP worker-src 策略,作为纵深防御

Chrome 154 正式发布还有不到两周。这个时间窗口,是你打补丁的唯一窗口。

评论区

0 条评论

登录后可评论。