0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

Android编程精选 来源:OSC开源社区 2023-08-07 16:33 次阅读

近日,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 那边,并开始分析这个问题发生的原因。

bc0563d0-3387-11ee-9e74-dac502259ad0.png

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 仍然在着手研究解决方案,看看是否能为还在使用老系统的用户一劳永逸解决这个问题,以免未来发生同样的情况。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Google
    +关注

    关注

    5

    文章

    1713

    浏览量

    56790
  • 函数
    +关注

    关注

    3

    文章

    3868

    浏览量

    61309
  • 变量
    +关注

    关注

    0

    文章

    595

    浏览量

    28112

原文标题:Google 有一个函数,20000 个变量……

文章出处:【微信号:AndroidPush,微信公众号:Android编程精选】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Mozilla撤销Firefox 125更新中安全改进

    Firefox 125稳定版致力于改良底层代码,以期更有效地防止用户访问可疑URL地址。其官方描述为:“扩展下载保护得到加强,能够更加积极地阻止来自高风险URL的下载。”
    的头像 发表于 04-23 11:44 63次阅读

    Firefox Nightly新增原生垂直标签特性

    近日,基于Mozilla旗下的Firefox浏览器用户向来期望其能集成垂直标签页功能,这一愿景在Mozilla Connect页面被热烈讨论,迫切欲望仅次于原生标签分组功能以及恢复对PWA应用的支持。
    的头像 发表于 04-03 14:43 339次阅读

    Mozilla重启Firefox原生标签页组研发 

    查阅IT之家2015年报导显示,早在2009年,Firefox即开始提供一款名为Panorama的标签页组功能。然而,根据Mozilla的数据分析,这一功能的实际使用率仅为万分之一,故而在2016年被去除,Mozilla当时推荐
    的头像 发表于 03-19 14:16 97次阅读

    Mozilla发布Firefox 123.0稳定版,新添网站兼容性报告工具

    2023年2月20日,Mozilla发布Firefox 123.0稳定版及115.9 ESR版本,并更迭Beta、Dev、Nightly三个开发频道版本至124、125;手机版Firefox亦升级到123.0。
    的头像 发表于 02-20 15:45 202次阅读

    维修安捷伦54621A示波器无法检测到信号案例

    近日山东某企业送修安捷伦示波器54621A,客户反馈无法检测到信号,对仪器进行初步检测,确定与客户描述故障基本一致。本期将为大家分享本维修案例。 下面就是安捷伦-54621A维修情况   安捷伦
    的头像 发表于 01-17 17:33 249次阅读
    维修安捷伦54621A示波器无法<b class='flag-5'>检测到</b>信号案例

    ADXL345无法检测到落体运动如何解决?

    在用加速度传感器ADXL345测量落体运动时,当初速度为0自由落体时,传感器能够正常检测到。但是当初速度不为0或者旋转时再扔出去,传感器ADXL345就无法检测到落体运动,请教如何解释这一现象?如何解决?非常感谢,困扰我很长时间
    发表于 12-29 06:45

    什么是电压崩溃?产生电压崩溃的原因

    什么是电压崩溃?产生电压崩溃的原因  电压崩溃是指电源或电路中的电压突然下降或消失的现象。它可能由多种原因引起,包括电源故障、电路过载、电路短路、电缆接触不良、电子元件老化等。在本文中,我们将详细
    的头像 发表于 12-20 17:05 744次阅读

    人体感应灯是如何检测到人的存在的?

    人体感应灯是如何检测到人的存在的? 人体感应灯是一种智能照明设备,它可以侦测到人的存在,并在人接近或离开时自动开启或关闭。这一技术的实现离不开人体感应技术和灯光控制技术的相互作用。 首先,让我们先了
    的头像 发表于 12-07 11:09 614次阅读

    Mozilla Firefox开发将完全转向Git,放弃Mercurial

    目前相关事项仍在规划中,预计至少六个月后才会开始全面的 Git 过渡。过渡完成后,Mercurial 将从 Firefox 开发工作流程中完全淘汰。
    的头像 发表于 11-23 16:08 288次阅读
    <b class='flag-5'>Mozilla</b> <b class='flag-5'>Firefox</b>开发将完全转向Git,放弃Mercurial

    过零检测电路的原理是什么啊?为什么要检测它,检测到了拿来做什么用啊?

    过零检测电路的原理是什么啊?为什么要检测它,检测到了拿来做什么用啊? 过零检测电路是一种常用的数字电路,其主要功能是在交流信号中检测信号过零
    的头像 发表于 10-26 18:19 1703次阅读

    现在,使用Mozilla Firefox的理由又增加了一条!

    的确是的,就以市场份额来说,谷歌 Chrome 占据了 63.56%,而 Firefox 用户仅占据了 2.94% —— 这是来自 StatCountergs.statcounter.com 的统计数据。
    的头像 发表于 10-17 15:59 287次阅读
    现在,使用<b class='flag-5'>Mozilla</b> <b class='flag-5'>Firefox</b>的理由又增加了一条!

    Google在一个函数中放入2万个变量引发Firefox崩溃

    近日,Mozilla 检测到 Firefox 出现大量崩溃事件,这个问题主要发生在使用 Lin
    的头像 发表于 06-26 16:58 406次阅读
    Google在一个函数中放入2万个变量引发<b class='flag-5'>Firefox</b>大<b class='flag-5'>崩溃</b>

    使用yocto构建Firefox Web浏览器报错怎么处理?

    我正在尝试使用 yocto 为 im8m mini 构建 firefox。 MACHINE ??= \'imx8mm-lpddr4-evk\' 发行版 ?= \'fsl-imx-xwayland
    发表于 06-02 08:42

    esp仅在按下重置按钮时被检测到是为什么?

    在 Windows 和 Linux 中。 起初它工作正常。我想这可能是由于焊接造成的,否则我不知道原因。 只有当我按下重置按钮时,它才会被检测到并且 COM 端口出现。当我松开它时,听起来好像我断开
    发表于 05-15 06:46

    SPC5674F串行引导加载代码崩溃怎么解决?

    我试图通过串行通信运行引导加载程序,但程序在我编写的代码出现问题的过程中崩溃。我正在寻找可以详细解释或修改代码的人。
    发表于 05-04 06:40