Mac运行49.7天必崩!macOS曝出定时炸弹Bug:所有版本无一幸免

短语录 网络资讯 1

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团队表示正在开发替代方案,但根本修复仍需苹果从内核层面推送更新。