I'm the creeper

Microsoft Exchange Server: il bug che ha bloccato migliaia di email

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.

Il bug di Microsoft Exchange Server

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.

Migliaia di email di- Microsoft Exchange sono rimaste bloccate nelle code dei server a causa di un bug sulla data.

Come risolvere l’errore?

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.

Soluzione automatizzata

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.

Soluzione manuale

Se si preferisce seguire una soluzione manuale, Microsoft ha illustrato gli step necessari a risolvere il problema (sempre temporaneamente):

  1. arrestare il servizio “Microsoft Filtering Management” e “Microsoft Exchange Transport”. Una volta arrestato il primo, sarà il sistema stesso a proporre un popup per bloccare il secondo;
  2. assicurarsi che il servizio updateservice.exe non sia in esecuzione;
  3. cancellare la cartella %ProgramFiles%\Microsoft\Exchange Server\V15\FIP-FS\Data\Engines\amd64\Microsoft;
  4. rimuovere tutti i file contenuti in %ProgramFiles%\Microsoft\Exchange Server\V15\FIP-FS\Data\Engines\metadata;
  5. far ripartire i due servizi arrestati in precedenza;
  6. aprire la “Exchange Management Shell”, navigare nella folder degli script (%ProgramFiles%\Microsoft\Exchange Server\V15\Scripts) ed eseguire il comando Update-MalwareFilteringServer.ps1 <server FQDN>;
  7. sempre sulla shell Exchange eseguire il comando Add-PSSnapin Microsoft.Forefront.Filtering.Management.Powershell;
  8. eseguire Get-EngineUpdateInformation e verificare che la proprietà “UpdateVersion” sia 2112330001.

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.

Published by
Marina Londei