瀏覽器崩潰不見得是軟體的錯!Mozilla 發現高達 15% 的 Firefox 當機源自記憶體「位元翻轉」

作者 | 發布日期 2026 年 03 月 09 日 16:50 | 分類 記憶體 , 資訊安全 , 軟體、系統 line share Linkedin share follow us in feedly line share
Loading...
瀏覽器崩潰不見得是軟體的錯!Mozilla 發現高達 15% 的 Firefox 當機源自記憶體「位元翻轉」

Mozilla 資深工程師 Gabriele Svelto 近日分析約 47 萬筆自動提交的當機報告,得出令人驚訝的結論:10%~15% Firefox 當機並非軟體程式碼錯誤,而是硬體層面的「位元翻轉」(Bit flipping)導致。

所謂位元翻轉,是指記憶體單元數值無任何軟體操作,卻自己從0變成1或從1變成0。這發現遠超過之前所有相關估計,Svelto也坦承這數值之高「令人瞠目結舌」。造成位元翻轉的主要因素有:

  • 宇宙輻射:高能粒子穿透設備,撞擊RAM的奈米電容導致電荷洩漏。
  • 熱效應:高溫環境記憶體穩定性下降。
  • 電壓不穩:電源供應不穩定影響記憶體運作。
  • 製造缺陷:記憶體晶片本身品質問題。
  • 元件老化:長期使用後硬體退化。

且位元翻轉的發生率也會跟著環境劇烈變化,這也解釋了為何太空設備必須使用經過抗輻射強化的特殊元件:

  • 地面環境:每年約一次因位元翻轉導致當機。
  • 飛機高度:宇宙射線暴露量增加300倍。
  • 太空環境:暴露量增加1,000倍。

Mozilla團隊開發了當機後自動執行的記憶體測試工具,能在瀏覽器崩潰後掃描記憶體傾印檔,尋找單位元損壞的特徵模式:單位元指標錯誤、損壞的哨兵值(Sentinel Values)、堆疊損壞;而關鍵數據統計顯示:

  • 確認的位元翻轉當機率:約5%
  • 估計的位元翻轉當機率:約10%
  • 排除記憶體不足後比例:高達15%
  • 源自真正硬體問題比例:約50%

然而,由於測試工具僅檢測最多1GB記憶體且運行時間不超過3秒,實際數字可能更高。

ECC記憶體:解決方案為何難普及?

ECC(Error-Correcting Code)記憶體能有效解決位元翻轉問題。原理是以另外晶片儲存校驗位元,每次讀取時完整檢查,單位元錯誤時可自動修正,多位元錯誤時偵測並回報,防止無聲損壞。且ECC記憶體價格並不高昂,成本只增加10%~15%,影響效能低於2%,故伺服器採用率100%,消費級採用率卻不到5%

為何消費市場採用率如此低?Linux之父Linus Torvalds曾公開批評英特爾刻意將ECC支援限制在Xeon伺服器處理器,Core/i系列桌面處理器完全無法使用。這並非技術限制,而是為保護伺服器CPU利潤的市場區隔策略。AMD部分Ryzen處理器於特定主機板支援ECC記憶體,消費者可當成替代選擇。

安全隱憂:從當機到攻擊手段

位元翻轉不僅是穩定性問題,更是安全漏洞。2015年Google Project Zero展示名為RowHammer的攻擊技術,反覆存取相鄰記憶體序列,利用DRAM物理特性誘發位元翻轉,成功提高x86-64 Linux系統核心權限。2022年的後續研究更令人擔憂:研究員使用「RowHammer Blacksmith」變種技術測試40款DDR4記憶體模組,結果全數均有漏洞,即便具備TRR(Target Row Refresh)防護機制也無法倖免。

使用者該如何防範?面對無法100%重現的隨機當機,Mozilla工程師建議深入除錯程式碼前,先排除硬體問題,先測試記憶體:

  1. 下載MemTest86+(免費開源工具)。
  2. 製作可開機USB隨身碟。
  3. 用USB開機執行測試。
  4. 建議至少執行8小時(可利用夜間進行)。
  5. 發現錯誤→更換故障的記憶體模組。
    零錯誤→可確認為軟體問題,繼續除錯。

工程師並建議以下幾項是降低風險的實用方法:避免超頻。遊戲開發商ArenaNet研究發現,超頻的CPU和RAM與當機率呈正相關。確保散熱良好。高溫會增加位元翻轉機率。使用品質可靠的電源供應器。穩定供電有助減少記憶體錯誤。考慮ECC記憶體。若使用AMD平台,可評估採用支援ECC的組合。

此研究在技術社群引起討論,部分開發者質疑:如果位元翻轉能損壞記憶體,是否也可能損壞當機遙測程式,導致誤判?也有人指出Chrome的當機頻率低於Firefox,究竟是Chrome錯誤處理機制更優秀,還是程式碼品質有差?

Svelto承認,10%~15%估算是基於損壞模式的「保守推斷」,而非絕對數值,確切數字仍有待更多研究。無論確定比例是5%、10%還是15%,核心訊息都很明確:並非所有當機都是軟體的錯。宇宙輻射、溫度、電壓波動和故障RAM都可能導致開發者無法用程式碼修復的當機。

Svelto也特別強調,這個問題不限PC。無論Mac、智慧手機、印表機還是路由器,任何內建記憶體的設備都可能受位元翻轉影響。從這個角度來看,能自行更換元件的PC組裝玩家反而處於較有利位置──至少不必因一條故障的記憶體而丟掉整台設備。

(首圖來源:Pixabay

想請我們喝幾杯咖啡?

icon-tag

每杯咖啡 65 元

icon-coffee x 1
icon-coffee x 3
icon-coffee x 5
icon-coffee x

您的咖啡贊助將是讓我們持續走下去的動力

總金額共新臺幣 0
《關於請喝咖啡的 Q & A》