Microsoft Exchange et le bug de l’an 2022 !
Microsoft a publié un correctif en urgence pour les serveurs de messagerie Microsoft Exchange afin de corriger ce que l'on pourrait appeler le bug de l'an 2022. Conséquence directe de ce bug : les e-mails ne sont plus délivrés et restent dans la file d'attente.
Bienvenue en 2022 ! Alors que l'année 2021 a été compliquée pour les administrateurs de serveurs Exchange, il faut dire que l'année 2022 commence de la pire des manières. Depuis minuit, le 1er janvier 2022, les serveurs Exchange (Exchange Server 2016 et Exchange Server 2019) ne parviennent plus à envoyer les e-mails et les messages suivants sont visibles dans le journal "Application" de l'observateur d'événements du serveur :
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. Source: FIPFS Logged: 1/1/2022 11:47:16 AM Event ID: 1106 Level: Error Computer: server1.contoso.com Description: The FIP-FS Scan Process failed initialization. Error: 0x80004005. Error Details: Unspecified error.
Au sein des messages d'erreur ci-dessus, on constate la présence du code d'erreur 0x80004005.
Comment expliquer cette erreur ? Et bien, il s'avère qu'Exchange vérifie la version du moteur d'analyse antivirus FIP-FS et tente de stocker la date dans une variable int32 signée. Le problème, c'est que cette variable a une limite et sa valeur ne peut pas dépasser "2 147 483 647" sauf que la valeur correspondante au 1er janvier 2022 à minuit est "2 201 010 001".
Lorsqu'une analyse est déclenchée sur un message électronique, le moteur d'analyse va planter à cause de cette variable qui contient une valeur incorrecte. Étant donné que l'analyse n'est pas effectuée, l'e-mail reste dans la file d'attente.
Compte tenu de l'urgence de la situation, Microsoft a publié un correctif temporaire sous la forme d'un script PowerShell nommé "Reset-ScanEngineVersion.ps1". L'objectif de ce script est de réaliser les actions suivantes :
- Arrêter les services Microsoft Filtering Management et Microsoft Exchange Transport
- Supprimer les fichiers du moteur d'analyse antivirus
- Télécharger une nouvelle version du moteur d'analyse antivirus sur le serveur (version 2112330001)
- Démarrer les services arrêtés précédemment
Ce script doit être exécuté sur chaque serveur Exchange on-premise et vous pouvez le télécharger à cette adresse : https://aka.ms/ResetScanEngineVersion
Pour en savoir plus sur l'utilisation de ce script ou effectuer l'opération manuellement, je vous recommande de lire cet article publié par Microsoft : Exchange - Erreur FIP-FS.
Après avoir appliqué ce correctif, les e-mails seront expédiés et la file d'attente sera donc vidée au fur et à mesure. Bien entendu, cela peut prendre du temps en fonction de la quantité de messages en attente.
Bon courage !