驱动之家 20小时前
Mac运行49.7天必崩!macOS曝出定时炸弹Bug:所有版本无一幸免
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_keji1.html

 

快科技 4 月 9 日消息,据 Photon 团队披露,macOS 内核存在一个严重的整数溢位漏洞,当系统连续运行达到 49 天 17 小时 2 分 47 秒时,TCP/IP 网络协议栈将彻底瘫痪,目前所有 macOS 版本均受影响。

该问题最早在 Photon 用于监控 iMessage 服务的 Mac 设备集群中被发现,部分机器在无明显征兆的情况下突然拒绝所有新的网络连接,但 ping 探测仍显示一切正常,已有的连接也保持不断,这使得故障排查极为困难。

运维人员只能通过重启来恢复网络功能,但问题会在下一次达到 49.7 天运行时间后再次出现。

经过深入溯源,Photon 团队将矛头指向了 macOS 内核中的 tcp_now 计时器,该计时器以 32 位整数记录系统启动以来的毫秒数,最大值为 4,294,967,295(即 2 ³² -1),换算下来恰好是 49.7 天。

该数值会因达到上限而归零或翻转,如果系统没有正确处理这种翻转,例如直接进行大于或小于的比较就会崩溃,导致网络驱动程序认为时间顺序错误,进而停止处理所有数据。

这一故障机制与 1999 年 Windows 98 的 49.7 天蓝屏事件如出一辙,同属整数溢位问题。

事实上,RFC 7323 标准早已对时间戳时钟溢位时的处理方式作出规范,但苹果的内核实现并未正确遵循。

对于普通 MacBook 用户而言,定期关机或系统自动更新重启使得该问题几乎不会触发,但随着 Mac mini 被用来养龙虾等,通常会连续运行数月,就会稳定地触发这个 Bug。

目前唯一的缓解方案是定期重启,Photon 团队表示正在开发替代方案,但根本修复仍需苹果从内核层面推送更新。

宙世代

宙世代

ZAKER旗下Web3.0元宇宙平台

一起剪

一起剪

ZAKER旗下免费视频剪辑工具

相关标签

macos 瘫痪 mini macbook
相关文章
评论
没有更多评论了
取消

登录后才可以发布评论哦

打开小程序可以发布评论哦

12 我来说两句…
打开 ZAKER 参与讨论