在21年前世纪之交,全球的计算机系统和互联网曾经出过一个重大事件:千年虫。 当时的计算机系统处理年份的方式都是两位数(如1998年会被系统缩略成98),而2000年在老系统里仍然以00显示,则会被系统当成1900年。 然而谁都没想到的是,就在前几天,”千年虫“又重演了…… | 发生了什么? 首先,幸运的是,这次的事故规模,并没有千年虫那次那么大。目前已知受到影响的,只有采用了微软 Exchange Server2016 和2019 版本的企业本地邮件服务器。 因为全球很多企业内部的电子邮件,采用的都是自主搭建的系统(而非基于 Gmail、网易、阿里云等云端邮件的方案),而微软的 Exchange 服务器 (Microsoft Exchange Server) 则是很多企业用户都在用的本地邮件系统。 然而在2021年12月31日——去年的最后一天,在 IT 人员都已经放假的时候,微软突然推送了一个全新的 Exchange Server 版本,直接把所有企业客户的电子邮件系统都给搞宕机了,大量邮件积压在发送序列当中,却无法正常发送和接收。 错误代码大概是下面这样的: Log Name: Application Source: FIPFS Logged: 1/1/2022 1:03:42 AM Event ID: 5300 Level: Error Computer: server1.contoso.com Description: The FIP-FS "Microsoft" Scan Engine failed to load. PID: 23092, Error Code: 0x80004005. Error Description: Can't convert "2201010001" to long. 一夜之间,大量的 IT 人员在 Reddit 和微软官方技术社区上大倒苦水。
“这玩意儿是怎么发布出来的?而且还是在新年夜???”
“电话都被打爆了。微软你弄啥嘞?” 问题,出在微软推送的这次更新的版本号上。 这次的更新,里面包含的电子邮件恶意软件扫描引擎的版本号是2201010001,表示的是2022年01月01日00点01分。 跨境收款微软的产品和系统在表示时间的时候,用的都是这种符号整数。然而,根据微软自己的开发文档,其系统能够接受的 Int32 符号整数的最大值是 2147483647。 这个最大值的前两位是21。 也就是说,采用这种整数方式来记录和表示时间,只能够正常覆盖到2021年的最后一秒。 所以,当微软推送出这个 2201010001 版本的时候,版本数字超过了系统能够接受的整数最大值,结果就直接把 Exchange Server 邮件系统给搞崩溃了…… ![]() |
1
![]() 鲜花 |
1
![]() 握手 |
![]() 雷人 |
![]() 路过 |
![]() 鸡蛋 |
业界动态|贝尔新闻网
2025-06-16
2025-06-16
2025-06-16
2025-06-16
请发表评论