Mozilla检测到Firefox出现了大量崩溃事件

近日,mozilla 检测到 firefox 出现了大量崩溃事件,这个问题主要发生在使用 linux 系统的用户身上,尤其是使用基于旧版本 debian 的 linux 系统上。 经过调查,mozilla 最后发现这个问题并非由 firefox 本身引起,而是涉及到 linux 内核和 google 的 javascript 代码。  
这些崩溃事件发生的十分突然,一开始 mozilla 检测到数以千计使用一个名为 huayra 的 debian 发行版的用户受到影响,特别是 huayra 5(基于 debian 10)。后续的持续检测发现,这个问题影响了几乎所有基于旧版本 debian 的发行版。
崩溃事件也并不是随机发生,而是能够 100% 复现。用户只要在 google 上搜索图片 firefox 就会出现崩溃,这个问题影响了所有版本的 firefox 浏览器 —— 无论是最新版本还是非常老的版本,都会崩溃。
结合上面两个条件,mozilla 的研究人员认定这个问题不是由 firefox 这边引发的,问题应该是出在 google 和旧版 linux 那边,并开始分析这个问题发生的原因。
mozilla 随后开始分析 firefox 在崩溃时的行为,发现崩溃发生在堆栈探测期间。jit 触及了为下一个 javascript 调用保存变量的区域,并不知为何导致了溢出。 第一个奇怪的地方在于,mozilla 发现 google 最近对其图像搜索页面进行了更改,该页面现在有一个 js 函数,google 在这个单独的函数中分配了 20000 个变量。进一步分析发现,这个函数可能是由 ai 生成的代码。 虽然发现了有这样的问题,不过理论上 firefox 应该依然不会出现崩溃才对,因为 linux 会自动扩展堆栈,mozilla 团队也已经预留了足够的空间,随后他们通过查看受影响进程的内存确认了这一点。
在执行此操作之前,我们进行了堆栈检查并验证了我们分配的额外堆栈内存量不会溢出我们为自己设置的本机堆栈限制。因此,似乎存在我们自我施加的限制与操作系统限制之间的分歧。这在某种程度上取决于发行版,但很混乱:例如,它影响 debian 10 但不影响 debian 11。
随后 mozilla 团队将检查重点放在了 linux 内核上,结果发现 linux 内核曾经有一个检查,可以防止对堆栈的访问离堆栈指针太远。特别是在 64kib+256 字节以外的访问会产生崩溃,而不是扩展堆栈。这个问题在 linux 4.20 中被修复了,所以使用较新的发行版的用户不受影响。 根据测试,google 似乎已经在图片搜索中修复了这个问题,不过 mozilla 仍然在着手研究解决方案,看看是否能为还在使用老系统的用户一劳永逸解决这个问题,以免未来发生同样的情况。

研究人员开发出一种可溶于水的新型忆阻器
受智能手机价格持续上扬带动,第一季行动式内存产值再度刷新历史记录
如何挑选爬坡性能好的电动车
基于CMOS阈值电压的基准电路设计
Perl语言入门教程
Mozilla检测到Firefox出现了大量崩溃事件
什么是驱动DDR5 有什么新功能
电气火灾监控系统在建筑防火中的研究与应用
百元耳机听个响?NANK南卡T2动圈+动铁双单元耳机强悍来袭!
一文教你如何画好电气图
2021年全球智能手机摄像头传感器出货量约59亿颗
校园无线局域网与3GPP融合网络机制改进方案介绍
黑客是怎么用python的?检如何判断目标环境是否部署防火墙?
井松智能携攀爬AGV亮相工博会
压力表如何精确效准,校准压力表时应考虑的十个因素?
Rotman透镜多波束形成网络的数值分析
智能温室大棚管理方式是怎样的
钙钛矿量子点激光直写原位制备图案化技术
TL431与7805构成可调稳压电源电路
Whitechapel 芯片适配Google 的机器学习机制