Nuovo anno, nuovi bug! Questa volta è toccato a Microsoft Exchange Server: il bug ha bloccato la consegna di migliaia di email, rimaste bloccate in coda. Il problema, come illustrato da Microsoft, è legato ai mancati controlli del cambio data del nuovo anno. Un “millennium bug” inaspettato che si è verificato proprio allo scoccare della mezzanotte del 1° gennaio 2022.
L’inizio del nuovo anno è iniziato col botto per migliaia di utenti di Microsoft Exchange Server, che si sono ritrovati impossibilitati a ricevere email e messaggi a causa di un bug. Gli admin di Exchange hanno notato che i server non riuscivano più a consegnare le email; cercando la causa del problema hanno individuato un messaggio nei log con un errore molto specifico:
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.
Di che cosa si tratta? Il motore di scansione FIP-FS, ovvero l’antivirus che si occupa di scansionare le email, fallisce nel memorizzare la data in un Int32 prima della conversione in long. Questo tipo di dato può memorizzare valori da -2.147.483.647 a + 2.147.483.647, ma le nuove date, con un anno in più, superano questo limite. Nel caso del 1° gennaio ore 00.00 il valore da memorizzare sarebbe stato +2.201.010.001, maggiore del valore massimo dell’intero a 32 bit.
Il motore di scansione è così crashato, mandando in tilt l’intero processo di consegna delle email e dei messaggi, lasciandoli bloccati in coda. La posta elettronica di Microsoft si è bloccata, le code si sono riempite e gli utenti non sono più riusciti a inviare o ricevere email.
Microsoft si è subito accorta dell’errore sui Server Exchange e si è detta già all’opera per la risoluzione del bug. Il fix, però, non arriverà nel breve tempo, e le email non possono di certo rimanere bloccate, soprattutto ora che le aziende stanno riprendendo a lavorare. Il team di Exchange ha pubblicato due possibili soluzioni, ma entrambe richiedono l’intervento degli admin del server per poter essere messe in pratica. Gli amministratori possono scegliere se seguire una procedura automatizzata o manuale.
Se si vuole ricorrere a una soluzione già pronta, è sufficiente eseguire uno script e seguire pochi e semplici passi per evitare temporaneamente il bug, in attesa della patch ufficiale. La prima cosa da fare è modificare le execution policy impostandole su “RemoteSigned”, permettendo quindi l’esecuzione di script con firma digitale attendibile. A questo punto si può scaricare lo script fornito da Microsoft ed eseguirlo su ogni server Exchange aziendale.
Se si preferisce seguire una soluzione manuale, Microsoft ha illustrato gli step necessari a risolvere il problema (sempre temporaneamente):
Questo valore rappresenta una data inesistente, ma Microsoft rassicura gli amministratori che è corretta e supportata dall’engine. Dopo l’esecuzione dello script (o dopo aver seguito gli step manuali) il server riprenderà a consegnare le email e i messaggi in maniera corretta, anche se potrebbe volerci un po’ di tempo prima che ritorni a regime.
La procedura è necessaria solo per i server che hanno accesso a internet e scaricano aggiornamenti per il malware. In caso contrario il problema non dovrebbe presentarsi.