一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Google在一個(gè)函數(shù)中放入2萬個(gè)變量引發(fā)Firefox大崩潰

OSC開源社區(qū) ? 來源:OSC開源社區(qū) ? 2023-06-26 16:58 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

近日,Mozilla 檢測(cè)到 Firefox 出現(xiàn)了大量崩潰事件,這個(gè)問題主要發(fā)生在使用 Linux 系統(tǒng)的用戶身上,尤其是使用基于舊版本 Debian 的 Linux 系統(tǒng)上。

經(jīng)過調(diào)查,Mozilla 最后發(fā)現(xiàn)這個(gè)問題并非由 Firefox 本身引起,而是涉及到 Linux 內(nèi)核和 Google 的 JavaScript 代碼。

這些崩潰事件發(fā)生的十分突然,一開始 Mozilla 檢測(cè)到數(shù)以千計(jì)使用一個(gè)名為 Huayra 的 Debian 發(fā)行版的用戶受到影響,特別是 Huayra 5(基于 Debian 10)。

后續(xù)的持續(xù)檢測(cè)發(fā)現(xiàn),這個(gè)問題影響了幾乎所有基于舊版本 Debian 的發(fā)行版。

崩潰事件也并不是隨機(jī)發(fā)生,而是能夠 100% 復(fù)現(xiàn)。用戶只要在 Google 上搜索圖片 Firefox 就會(huì)出現(xiàn)崩潰,這個(gè)問題影響了所有版本的 Firefox 瀏覽器 —— 無論是最新版本還是非常老的版本,都會(huì)崩潰。

結(jié)合上面兩個(gè)條件,Mozilla 的研究人員認(rèn)定這個(gè)問題不是由 Firefox 這邊引發(fā)的,問題應(yīng)該是出在 Google 和舊版 Linux 那邊,并開始分析這個(gè)問題發(fā)生的原因。

40b175c4-1349-11ee-962d-dac502259ad0.png

Mozilla 隨后開始分析 Firefox 在崩潰時(shí)的行為,發(fā)現(xiàn)崩潰發(fā)生在堆棧探測(cè)期間。

JIT 觸及了為下一個(gè) JavaScript 調(diào)用保存變量的區(qū)域,并不知為何導(dǎo)致了溢出。

第一個(gè)奇怪的地方在于,Mozilla 發(fā)現(xiàn) Google 最近對(duì)其圖像搜索頁面進(jìn)行了更改,該頁面現(xiàn)在有一個(gè) JS 函數(shù),Google 在這個(gè)單獨(dú)的函數(shù)中分配了 20000 個(gè)變量。

進(jìn)一步分析發(fā)現(xiàn),這個(gè)函數(shù)可能是由 AI 生成的代碼。

雖然發(fā)現(xiàn)了有這樣的問題,不過理論上 Firefox 應(yīng)該依然不會(huì)出現(xiàn)崩潰才對(duì),因?yàn)?Linux 會(huì)自動(dòng)擴(kuò)展堆棧,Mozilla 團(tuán)隊(duì)也已經(jīng)預(yù)留了足夠的空間,隨后他們通過查看受影響進(jìn)程的內(nèi)存確認(rèn)了這一點(diǎn)。

在執(zhí)行此操作之前,我們進(jìn)行了堆棧檢查并驗(yàn)證了我們分配的額外堆棧內(nèi)存量不會(huì)溢出我們?yōu)樽约涸O(shè)置的本機(jī)堆棧限制。

因此,似乎存在我們自我施加的限制與操作系統(tǒng)限制之間的分歧。

這在某種程度上取決于發(fā)行版,但很混亂:例如,它影響 Debian 10 但不影響 Debian 11。

隨后 Mozilla 團(tuán)隊(duì)將檢查重點(diǎn)放在了 Linux 內(nèi)核上,結(jié)果發(fā)現(xiàn) Linux 內(nèi)核曾經(jīng)有一個(gè)檢查,可以防止對(duì)堆棧的訪問離堆棧指針太遠(yuǎn)。

特別是在 64KiB+256 字節(jié)以外的訪問會(huì)產(chǎn)生崩潰,而不是擴(kuò)展堆棧。

這個(gè)問題在 Linux 4.20 中被修復(fù)了,所以使用較新的發(fā)行版的用戶不受影響。

根據(jù)測(cè)試,Google 似乎已經(jīng)在圖片搜索中修復(fù)了這個(gè)問題,不過 Mozilla 仍然在著手研究解決方案,看看是否能為還在使用老系統(tǒng)的用戶一勞永逸解決這個(gè)問題,以免未來發(fā)生同樣的情況。






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux系統(tǒng)
    +關(guān)注

    關(guān)注

    4

    文章

    605

    瀏覽量

    28602
  • LINUX內(nèi)核
    +關(guān)注

    關(guān)注

    1

    文章

    317

    瀏覽量

    22398
  • Debian
    +關(guān)注

    關(guān)注

    0

    文章

    77

    瀏覽量

    1693

原文標(biāo)題:Google在一個(gè)函數(shù)中放入2萬個(gè)變量,引發(fā)Firefox大崩潰

文章出處:【微信號(hào):OSC開源社區(qū),微信公眾號(hào):OSC開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Google Fast Pair服務(wù)簡(jiǎn)介

    設(shè)備。多個(gè)Seeker設(shè)備可以擁有同一個(gè)Google Account 。Provider和第一個(gè)Seeker建立關(guān)聯(lián)的過程稱為initial pairing;Provider和第二個(gè)
    發(fā)表于 06-29 19:28

    解鎖LuatOS新世界:二次開發(fā)必備的3個(gè)核心常識(shí)

    起來了解LuatOS開發(fā)需要熟悉的幾個(gè)常識(shí)。 ? 、匿名函數(shù) Lua代碼里面,經(jīng)??吹?jīng)]有名字的函數(shù)。 這種函數(shù)定義之后,要么馬上運(yùn)行,
    的頭像 發(fā)表于 06-23 16:08 ?64次閱讀
    解鎖LuatOS新世界:二次開發(fā)必備的3<b class='flag-5'>個(gè)</b>核心常識(shí)

    突破LuatOS開發(fā)瓶頸:三個(gè)二次開發(fā)必備知識(shí)揭秘!

    。 ? 、匿名函數(shù) Lua代碼里面,經(jīng)??吹?jīng)]有名字的函數(shù)。 這種函數(shù)定義之后,要么馬上運(yùn)行,要么作為另
    的頭像 發(fā)表于 06-23 15:05 ?68次閱讀
    突破LuatOS開發(fā)瓶頸:三<b class='flag-5'>個(gè)</b>二次開發(fā)必備知識(shí)揭秘!

    Google推出全新Cloud WAN解決方案

    202 個(gè)接入點(diǎn)(PoP),由超過 200 英里的光纖和 33 條海底光纜提供支持,并有 99.99% 可靠性服務(wù)水平協(xié)議(SLA)作為后盾,Google 的網(wǎng)絡(luò)提供了
    的頭像 發(fā)表于 05-14 16:48 ?505次閱讀

    函數(shù)指針的六個(gè)常見應(yīng)用場(chǎng)景

    函數(shù)指針嵌入式開發(fā)中有著廣泛的應(yīng)用,它讓代碼更加靈活,減少冗余,提高可擴(kuò)展性。很多時(shí)候,我們需要根據(jù)不同的情況動(dòng)態(tài)調(diào)用不同的函數(shù),而函數(shù)指針正是實(shí)現(xiàn)這
    的頭像 發(fā)表于 04-07 11:58 ?524次閱讀
    <b class='flag-5'>函數(shù)</b>指針的六<b class='flag-5'>個(gè)</b>常見應(yīng)用場(chǎng)景

    必看!15個(gè)C語言常見陷阱及避坑指南

    ? C語言雖強(qiáng)大,但隱藏的“坑”也不少!稍不留神就會(huì)導(dǎo)致程序崩潰、數(shù)據(jù)異常。本文整理15個(gè)高頻陷阱,助你寫出更穩(wěn)健的代碼! ? 陷阱1:運(yùn)算符優(yōu)先級(jí)混淆? 問題:運(yùn)算符優(yōu)先級(jí)不同可能導(dǎo)致計(jì)算順序錯(cuò)誤
    的頭像 發(fā)表于 03-16 12:10 ?617次閱讀

    關(guān)于STM32 CAN通信發(fā)送函數(shù)HAL_CAN_AddTxMessage()的最后個(gè)參數(shù)填0和定義個(gè)變量取地址的問題求解

    問題: 關(guān)于STM32 CAN通信 發(fā)送函數(shù) HAL_CAN_AddTxMessage()的最后個(gè)參數(shù)填0和定義個(gè)
    發(fā)表于 03-11 08:22

    STM32H7 0x00000000地址的內(nèi)容引發(fā)hardfault怎么解決?

    ;Init.Request)時(shí)引發(fā)hardfault。具體原因是因?yàn)?b class='flag-5'>變量huart(對(duì)應(yīng)類型UART_HandleTypeDef)中未對(duì)hdmarx進(jìn)行初始化,該指針變量指向0x00000000,但
    發(fā)表于 03-07 08:15

    TimSort:個(gè)標(biāo)準(zhǔn)函數(shù)庫中廣泛使用的排序算法

    排序算法呢? 本文將帶你走進(jìn) TimSort,個(gè)標(biāo)準(zhǔn)函數(shù)庫中廣泛使用的排序算法。 這個(gè)算法由工程師 Tim Peters 于 2001 年專為 Python 設(shè)計(jì),并自 Pytho
    的頭像 發(fā)表于 01-03 11:42 ?577次閱讀

    同樣是函數(shù),C和C++中有什么區(qū)別

    同樣是函數(shù) C 和 C++ 中有什么區(qū)別? 第一個(gè)返回值。 C語言的函數(shù)可以不寫返回值類型,編譯器會(huì)默認(rèn)為返回 int。 但是 C++ 的函數(shù)
    的頭像 發(fā)表于 11-29 10:25 ?909次閱讀

    如何在文本字段中使用上標(biāo)、下標(biāo)及變量

    KiCad的任何文本字段中,都可以通過以下的方式實(shí)現(xiàn)上標(biāo)、下標(biāo)、上劃線以及顯示變量及字段值的描述: 文本變量“文本變量”可以 原理圖設(shè)置
    的頭像 發(fā)表于 11-12 12:23 ?660次閱讀
    如何在文本字段中使用上標(biāo)、下標(biāo)及<b class='flag-5'>變量</b>

    Steam歷史罕見大崩潰!近60個(gè)僵尸網(wǎng)絡(luò),DDoS攻擊暴漲2

    實(shí)驗(yàn)室分析,此次攻擊異常猛烈,源頭涉及近60個(gè)僵尸網(wǎng)絡(luò)主控,攻擊指令夜之間激增超2倍,波及全球13個(gè)國(guó)家和地區(qū)的107
    的頭像 發(fā)表于 08-27 10:44 ?548次閱讀
    Steam歷史罕見大<b class='flag-5'>崩潰</b>!近60<b class='flag-5'>個(gè)</b>僵尸網(wǎng)絡(luò),DDoS攻擊暴漲<b class='flag-5'>2</b><b class='flag-5'>萬</b>倍

    個(gè)socket對(duì)應(yīng)個(gè)連接嗎

    探討“個(gè)socket對(duì)應(yīng)個(gè)連接”這命題時(shí),我們首先需要明確socket的基本概念和它在網(wǎng)
    的頭像 發(fā)表于 08-16 10:55 ?924次閱讀

    技術(shù)干貨驛站 ▏深入理解C語言:基本數(shù)據(jù)類型和變量

    語言的知識(shí),為后續(xù)的編程學(xué)習(xí)打下堅(jiān)實(shí)的基礎(chǔ)。1基本數(shù)據(jù)類型C語言中,數(shù)據(jù)類型指的是用于聲明不同類型的變量函數(shù)個(gè)廣泛的系統(tǒng),用于定義
    的頭像 發(fā)表于 07-26 17:53 ?2751次閱讀
    技術(shù)干貨驛站 ▏深入理解C語言:基本數(shù)據(jù)類型和<b class='flag-5'>變量</b>

    sdk調(diào)用sprintf函數(shù)時(shí),系統(tǒng)就會(huì)崩潰,為什么?

    rtos版本的sdk,v1.0.4版本(1.0.3版本的也有同樣的問題)。當(dāng)我調(diào)用sprintf函數(shù)時(shí),系統(tǒng)就會(huì)崩潰,打印信息如下: Fatal exception (222t?,u): epc1
    發(fā)表于 07-18 07:14