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团队称正在研发替代方案,不过彻底解决问题还得等苹果从内核层面推送更新。
幻兽帕鲁正式版前期到中期的赚钱技巧汇总
王国大作战前线射手输出型阵容组合建议
七界梦谭每日推荐必做事项
斗罗大陆猎魂世界仙猊秘辛玩法详解
使命召唤手游传说武器自选活动玩法深度解读
幻兽帕鲁正式版世界树圣水高效刷取方法
铃兰之剑和平世界自选礼包人物挑选建议指南
晶核艾尔莎角色强度全面剖析