newsence
macOS TCP 網路中的定時炸彈:運行 49 天後準時引爆

macOS TCP 網路中的定時炸彈:運行 49 天後準時引爆

Hacker News·大約 14 小時前

我們在 macOS 的 TCP 網路堆疊中發現了一個嚴重的定時炸彈,當系統連續運行時間達到 49.7 天時,該漏洞就會引爆並導致嚴重的網路效能下降與連線失敗。

背景

近期 Photon 團隊在 macOS 的 TCP 網路堆疊中發現了一個嚴重的邏輯錯誤,該錯誤會在系統連續運作達 49.7 天後準確觸發,導致所有新的 TCP 連線無法正常建立。這項發現引起了技術社群的廣泛關注,因為它直接影響了 macOS 系統作為伺服器或長期不關機工作站的穩定性。

社群觀點

在 Hacker News 的討論中,最令資深工程師感興趣的是「49.7 天」這個充滿既視感的數字。許多留言者立刻聯想到 Windows 95 當年著名的當機臭蟲,同樣也是在系統運行約 49.7 天後發生。這種巧合源於 32 位元無號整數(unsigned 32-bit integer)以毫秒為單位計時後的溢位極限。社群對此感到既無奈又好笑,認為即便過了數十年,現代作業系統依然會掉入同樣的計數器陷阱,戲稱這簡直是「新瓶裝舊酒」的經典案例。

針對此臭蟲的影響範圍,討論區出現了關鍵的釐清。部分使用者起初誤以為只有存續超過 49 天的單一 TCP 連線會斷線,但隨即有開發者指出,該問題的嚴重性在於一旦系統開機時間跨過這個門檻,後續「所有」嘗試建立的 TCP 連線都會受到影響。這意味著受影響的機器將在網路功能上徹底癱瘓。有趣的是,雖然大多數一般用戶習慣頻繁重啟筆電,但仍有使用者分享自己搭載 M1 晶片的 MacBook 已經連續運作超過 228 天卻未察覺異狀,這引發了關於特定硬體架構或 macOS 版本是否皆受影響的零星爭論。

此外,討論中頻繁出現一個名為「OpenClaw」的神祕關鍵字,部分留言者幽默地將此臭蟲稱為該軟體的「安全功能」,甚至開玩笑說如果遭到勒索軟體威脅,只要拖延談判到 49 天後讓網路自毀即可。然而,也有不少讀者對此感到困惑,認為文章中並未提及 OpenClaw,懷疑這可能是某種社群內部的梗或是由 AI 生成內容所引發的誤解。

最後,社群對於「不關機習慣」也展開了反思。有些用戶堅持 macOS 穩定到不需要重啟,但另一派觀點則認為,無論作業系統多麼成熟,定期重啟依然是避開這類隱藏計時炸彈的必要手段。對於那些擔心自己系統狀態的開發者,社群中也有人迅速提供了腳本工具,幫助用戶精確計算自己的機器何時會達到這個危險的溢位時間點。

延伸閱讀

在討論串中,有開發者分享了實用的工具與歷史背景參考。針對想要預測系統崩潰時間的用戶,GitHub 上出現了基於 fish shell 的計算腳本(calc_tcp_overflow_time.fish),可精確算出 TCP 溢位的時間戳記。此外,留言中也附上了關於 Windows 95 當年 49.7 天當機事件的技術回顧連結,供讀者對比這兩起跨越時空的相似錯誤。

https://photon.codes/blog/we-found-a-ticking-time-bomb-in-macos-tcp-networking