Hello World! Et si on débutait cette nouvelle année d’articles sur Les Joies du Code avec le partage d’un bon gros fail des familles signé Microsoft ? 👀
Qui l’eût cru ? Tel un (mauvais) remake du bug de l’an 2000, les équipes de Microsoft ont été confrontées en ce début d’année à un dysfonctionnement on ne peut plus gênant pour leur solution Exchange Server.
À compter du 1er janvier de cette année 2022, absolument plus aucun e-mail ne pouvait être délivré pour toutes les entreprises reposant sur la solution Exchange installée sur site, dans ses versions 2016 et 2019 : les messages restaient tout bonnement bloqués en file d’attente sans qu’aucun envoi ne soit possible.
En checkant les logs d’événements Windows, les administrateurs Exchange ont ainsi pu découvrir les messages d’erreur suivants :
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.
Log Name: Application
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.
Alors que le bug se situe — comme le font comprendre les logs — au niveau du moteur d’analyse antivirus FIP-FS de la solution, c’est plutôt sa raison qui fait mal : l’usage d’une variable int32 signée pour stocker une date pour vérifier la version du moteur.
Oui, c’est assez sale. Très, très, très sale même.
Alors que la valeur maximale du long int est de 2 147 483 647, Microsoft proposait pour les dates de 2022 des valeurs comme 2 201 010 001 (pour le 1er janvier 2022 par exemple), les couples de digits correspondant dans l’ordre à l’année, au mois puis au jour en cours.
Et forcément, quand on essaie de faire passer ce genre de valeur dans un type de donnée absolument incapable de l’encaisser...
La suite est simple : à chaque initialisation de vérification de mail par l’utilitaire FIP-FS, le scan antivirus tombait sur ce bug qui faisait crasher son moteur, empêchant tout départ de mail.
Assez réactif sur ce coup, Microsoft a rapidement partagé un correctif d’urgence temporaire nécessitant une action de la part des administrateurs Exchange, par des étapes manuelles ou l’usage plus automatisé d’un script PowerShell.
Dans le correctif, la nouvelle valeur transmise pour la version du moteur antivirus sera 2 112 330 001 (à priori, le 33 décembre 2021 ne posera plus problème 👀).
Pour celles et ceux que ça pourrait intéresser, les différentes étapes correctives sont décrites dans ce billet sur le blog de l’équipe Exchange de Microsoft.
La firme de Redmond précise que l’opération peut prendre plus ou moins de temps en fonction du nombre de mails en attente d’envoi dans l’organisation.
À propos de l'auteur
Nicolas Lecointre
Fondateur des Joies du Code, je suis l'actualité et la culture des développeurs depuis 2012. Ancien développeur, je me consacre aujourd'hui entièrement au média.
Offres d'emploi
À lire également
Événement DevOps Live Paris 2026 : le programme des conférences pour les devs et les ops
Les 18 et 19 novembre 2026, l'événement DevOps Live Paris s'installe à la Porte de Versailles, avec un fil conducteur qui résume assez bien nos vies : livrer plus vite...
Articles similaires
Les maths qui sécurisent le Web cachaient un mystère vieux de 25 ans, Anthropic l'a résolu
Un point-virgule mal géré dans Telegram Desktop suffisait à pirater un compte en un clic
PHP corrige ses failles critiques : comment mettre à jour pour protéger vos sites
Urgent : deux failles critiques dans PHP, les correctifs sont disponibles
Les maths qui sécurisent le Web cachaient un mystère vieux de 25 ans, Anthropic l'a résolu
Un point-virgule mal géré dans Telegram Desktop suffisait à pirater un compte en un clic
Plus de contenu
Quand tous les tests sont au vert
Quand j'essaie de faire des trucs sur le serveur alors que j'ai pas les droits
Quand j'ai corrigé absolument tous les bugs remontés par le client
Quand on m'annonce que je récupère la maintenance du projet legacy dont personne ne veut
Quand le client me demande si je serai en mesure de livrer en avance
"apprendre le machine learning en une semaine pdf"
Quand c'est vendredi après-midi et que le commercial veut que je participe à une de ses réunions
Quand un collègue est beaucoup trop bruyant au téléphone
Quand tous les tests sont au vert
Quand j'essaie de faire des trucs sur le serveur alors que j'ai pas les droits
Quand j'ai corrigé absolument tous les bugs remontés par le client
Quand on m'annonce que je récupère la maintenance du projet legacy dont personne ne veut
Quand le client me demande si je serai en mesure de livrer en avance

