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

    文章

    1820

    浏览量

    60715
  • 函数
    +关注

    关注

    3

    文章

    4423

    浏览量

    68079
  • 变量
    +关注

    关注

    0

    文章

    616

    浏览量

    29626

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Debian 69未检测到Intenso NVME,怎样才能让它工作?

    嘿。我刚刚设法更新到 2.5.0 并启动了 Debian 版本 69。 但未检测到我的新 NVME SSD它在闪烁,但也许我必须做其他事情然后将其内置? 我怎样才能让它工作? 谢谢
    发表于 03-25 06:38

    在 4GB 型号上检测到的内存大小错误为 8GB,怎么解决?

    - 看起来内存检测有问题 - 至少如果其他人也是如此。所有这一切都是完整的 69 图像。 在 /boot/boot/extlinux/extlinux.conf 中添加 mem=4000M 是一种解决方法,可避免在系统尝试访问内存的不存在部分时崩溃
    发表于 03-24 06:17

    单片机Io口检测到高电平的最短时间是多少?

    请教一下大神单片机Io口检测到高电平的最短时间是多少?
    发表于 01-14 08:20

    使用HTTP实现IAP的方法

    。 HTTP 基于 TCP 协议运行,它提供一种以 HTML 表单形式从 Web 客户端(Mozilla Firefox或 Microsoft Internet Explorer)发送二进制文件的方式。这称为 HTTP 文件上
    发表于 12-16 06:18

    请问可不可以在中断中配置ADC和处理ADC检测到的结果?

    可不可以在中断中配置ADC和处理ADC检测到的结果?
    发表于 11-13 06:18

    减少 2/3 人工:智能气密性检测设备的人机协作优化-岳信仪器

    在制造业蓬勃发展的今天,产品的质量检测至关重要,尤其是气密性检测,它关乎产品的性能与安全。传统的气密性检测方式依赖大量人工操作,不仅效率低下,还容易
    的头像 发表于 11-07 11:05 341次阅读
    减少 2/3 人工:智能气密性<b class='flag-5'>检测</b>设备的人机协作优化-岳信仪器

    基于级联分类器的人脸检测基本原理

    关系来检测人脸。基于统计的方法将人脸看成统一的二维像素矩阵,通过大量的样本构建人脸子空间,通过相似度的大小来判断人脸是否存在。 2) 基于灰度特征的人脸级联分类器 基于灰度特征的人脸检测级联分类器属于
    发表于 10-30 06:14

    睿擎平台CoreDump实战指南:系统崩溃现场的完美捕获 | 技术解析

    在嵌入式系统开发中,系统崩溃往往是最令人头疼的问题之一。当程序突然宕机、出现硬故障或断言失败时,如何快速定位根本原因?CoreDump技术为开发者提供一种「时间冻结」的能力,能在系统崩溃
    的头像 发表于 10-29 16:58 4419次阅读
    睿擎平台CoreDump实战指南:系统<b class='flag-5'>崩溃</b>现场的完美捕获 | 技术解析

    MCU无法检测到W5500是怎么回事?

    检测到W5500,在GD32F303和N32G457都显示为Wiznet chip not detected。 在三个MCU上用的都是同一个SPI接口,RST,INT,CS用的GPIO都是一样的,在三个BSP中修改的地方也是基本上一样的。 不知道各位有没有碰到类似的情况,有的话帮忙解答一下,谢谢。
    发表于 10-14 07:38

    STM32CubeProgrammer 烧录 STM32芯片在连接的时候出现问题

    )也是我的,出现下面的问题 下面那张图片是我的芯片要硬件复位,但是我感觉和我的硬件连接都没问题,之前已经烧成功过了,换了一个环境居然就不可以,我感到有一些困惑,ST-LINK应该是没有问题的,电源我给
    发表于 09-14 11:31

    半导体测试的演进:从缺陷检测到全生命周期预测性洞察

    随着半导体封装复杂性的提升与节点持续缩小,缺陷检测的难度呈指数级增长。工程师既要应对制造与封装过程中出现的细微差异,又不能牺牲生产吞吐量——这一矛盾已成为行业发展的核心挑战。文章目录1、微缩时代
    的头像 发表于 08-19 13:46 1708次阅读
    半导体测试的演进:从缺陷<b class='flag-5'>检测到</b>全生命周期预测性洞察

    CX3设备仅在一个 SS 端口上被检测到,但在同一台 PC 的其他端口上没有被检测到,为什么?

    CX3 设备仅在一个 SS 端口上被检测到,但在同一台 PC 的其他端口上没有被检测到
    发表于 08-14 06:46

    瑞芯微3576,使用FP16模型进行训练,瑞芯微官方接口概率崩溃

    corrupted。之前使用INT8的模型没出现过这个错误。使用的是model_zoo中的aarch64下的librknnrt.so。未崩溃时能正常检测,可以确认崩溃前没有内存泄漏或
    发表于 07-17 13:25

    工业APP频繁崩溃?聚徽厂家分享安卓工控机内存碎片化与进程管理优化指南

    与进程管理两大核心维度,深入剖析崩溃根源,并提出系统性优化方案。 一、内存碎片化:工业APP崩溃的隐形推手 1. 内存碎片化的成因与危害 内存碎片化是指内存中存在大量零散、不连续的空闲空间,导致无法分配大块连续内存。在工业场
    的头像 发表于 06-10 10:24 792次阅读

    将 TypeC 连接到 DisplayPort 转换电缆时,可能无法检测到 CC 线路,也可能无法显示屏幕,为什么?

    CYPD5225-96BZXI 设计具有 2 个 Type-C 端口的设备。 将 TypeC 连接到 DisplayPort 转换电缆时,可能无法检测到 CC 线路,也可能无法显示屏幕。 ■详细信息
    发表于 05-28 08:11