Problem Roku... 2022? Poczta Microsoft Exchange przestała działać

Niektóre wersje serwera pocztowego Microsoft Exchange w wariancie on-prem uległy wraz z Nowym Rokiem awarii, bowiem dzisiejsza data nie mieści się w zmiennej. Winę za to ponosi wbudowany silnik filtrujący (Microsoft Filtering Engine). Umożliwia on skanowanie zawartości Exchange'a przez program antywirusowy i reguły spamowe. Wszystko to przez osobliwy sposób zapisu daty.

Poczta Exchange nie działaPoczta Exchange nie działa
Źródło zdjęć: © PxHere

Czy ktoś pamięta jeszcze Problem Roku 2000? Miliony urządzeń elektronicznych miały przestać działać i w konsekwencji doprowadzić do paraliżu i/lub wojny sekundę po zakończeniu 31 grudnia 1999. Powodem miał być dwucyfrowy format daty, przekręcający się w roku 2000 do daty 1900. Dwucyfrowe daty były zaszłością historyczną z czasów telegrafów, zostały przeniesione do tuzinów standardów federalnych w USA i w ten sposób wylądowały w elektronice biurowej i użytkowej.

Problem był rozdmuchany przez prasę - ale tylko trochę. Brak katastrofy w roku 2000 zawdzięczamy wysiłkom informatyków na całym świecie, którzy łatali lub wymieniali podatne systemy. Dziś, ze względu na przegrzanie tematu, takie historie nie są już popularne. A podobny problem czai się w 32-bitowym Uniksie i niektórych, gdzie "cwana" sztuczka z przechowywaniem daty w postaci sekund w jednej zmiennej, dociera do kresu możliwości w 2038 roku.

Nowy serwer, stary problem

Co zrobił Microsoft? Zdecydowano - kiedyś dawno temu - że format daty dla niektórych składników, w tym dla usługi Filtering Management Service, stosuje dawny format zapisu daty YYMMDDHHmm, co oznacza, że 1 stycznia 2022 to inaczej 2201010000. Data jest trzymana w zmiennej typu long o szerokości 32-bitowej, a LONG_MAX to 2147483647. Oczywiście, taka wartość maksymalna nie ma sensu nawet we francuskim kalendarzu rewolucyjnym, faktem pozostaje jednak, że wytrzymałość zmiennej long kończy się w roku 2021.

Dziennik zdarzeń rapotuje awarię skanera warstwy systemu plików (FIP-FS) o nazwie "Microsoft", wołanego przez exchange'owego agenta Antimalware Agent. Skaner ulega awarii ("Can't convert "2201010001" to long."), co kładzie usługę filtrującą (to ciekawe!), a gdy obiekt nie przejdzie przez całą kolejkę, jest uznawany za nieprzetworzony i ląduje w kolejce - która rośnie.

Rozwiązaniem jest wstrzymanie działania modułu antywirusowego w Exchange'u, co oznacza że w 2022 rozwiązaniem w dalszym ciągu bywa "wyłącz antywirusa". Powinno to zdumiewać, choć źródłem zamieszania jest problem o wiele poważniejszy: format daty nieodporny na przyszłość. Jest to dość elementarny błąd, a obecny jest nawet w najnowszym Exchange 2019.

Poprawki jeszcze nie ma.

Wybrane dla Ciebie
ZondaCrypto. Policja ostrzega przed kolejnym oszustwem
ZondaCrypto. Policja ostrzega przed kolejnym oszustwem
NASK: prorosyjskie grupy przejmują kamery z Polski
NASK: prorosyjskie grupy przejmują kamery z Polski
Problemy po aktualizacji Windows 11. Co powoduje KB5083769?
Problemy po aktualizacji Windows 11. Co powoduje KB5083769?
mBank ostrzega przed majówką. Podał terminy przelewów
mBank ostrzega przed majówką. Podał terminy przelewów
Ważne zmiany na Facebooku. Dotyczą prywatności
Ważne zmiany na Facebooku. Dotyczą prywatności
Santander wydał komunikat. "Wracamy jako Erste Bank Polska"
Santander wydał komunikat. "Wracamy jako Erste Bank Polska"
Khaby Lame i awatar AI. Miał być wielki deal, jest rozczarowanie
Khaby Lame i awatar AI. Miał być wielki deal, jest rozczarowanie
Bruksela wykłada 63 mln euro na "cyfrową rewolucję". Kto zyska?
Bruksela wykłada 63 mln euro na "cyfrową rewolucję". Kto zyska?
Zmiany w Windows 11. Ważna deklaracja Microsoftu
Zmiany w Windows 11. Ważna deklaracja Microsoftu
Awaryjna aktualizacja .NET - odpowiedź na groźną lukę
Awaryjna aktualizacja .NET - odpowiedź na groźną lukę
Nowość w mObywatelu. Pobierz aktualizację
Nowość w mObywatelu. Pobierz aktualizację
WhatsApp testuje nowość. "Zajrzy" do wszystkich rozmów
WhatsApp testuje nowość. "Zajrzy" do wszystkich rozmów
ZANIM WYJDZIESZ... NIE PRZEGAP TEGO, CO CZYTAJĄ INNI! 👇