[하루한줄] Y2K22: Email Stuck in Exchange On-premises Transport Queues

URL

Email Stuck in Exchange On-premises Transport Queues

Target

Microsoft Exchange 2016 server

Microsoft Exchange 2019 server

Explain

2022년 새해가 밝자 Microsoft Exchange mail server들에서 대량의 이메일들이 전송 queue에 머무르며 서버를 다운시키는 사건이 발생합니다. 원인을 분석한 결과, 해당 사건을 발생시킨 버그에 Y2K22라는 이름이 붙여졌습니다. Y2K(Millennium bug)와의 유사성 때문에 붙여진 이름입니다.

Microsoft Exchange 2016과 2019 server에는 FIP-FS라는 악성코드 탐지 엔진이 포함되어 있습니다. 해당 엔진은 32-bit integer에 날짜를 저장하는 signature file을 사용합니다. 문제는 32-bit integer에 yymmddhhmm의 형태로 날짜를 저장한다는 것입니다. 다들 잘 아시는 것처럼 32-bite integer 형식은 -2147483648 ~ 2147483647 범위의 정수를 저장하는 데이터 타입입니다. 22년 1월 1일 0시 1분을 뜻하는 2201010001이 integer에서 허용하는 정수 범위를 넘어서게 되어 악성코드 탐지 엔진의 날짜 검증 루틴을 통과하지 못하고 queue에 쌓이게 된 것입니다.

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.