
Microsoft released a new version of Exchange Server at the start of the new year, which promptly caused everybody’s on-premises servers to crash. The reason? The version number. There is apparently code somewhere in the bowels of the software that interprets that number as a signed 32-bit integer, computed as the (year - 2000) × 100 million + additional digits for the month and day etc. Spot the problem with that? The largest representable such integer is 2147483647, so the top two digits can’t be greater than 21. So it can’t actually represent the correct version number for any version released after 2021. Why does the code do that? Who knows... Microsoft’s fix? Change the version number to restrict the top two digits to 21, and increment the lower digits instead, beyond their usual range (e.g. so the release date becomes effectively something like “33 December 2021”). They released a PowerShell script to automate the fix, but it might not work properly, so there is an option for a manual fix as well. <https://arstechnica.com/information-technology/2022/01/exchange-server-bug-gets-a-fix-after-ruining-admins-new-years-plans/>