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



登录后才可以发布评论哦
打开小程序可以发布评论哦