🇰🇷 한글 설명
Progressive Robot hMailServer 6.0.0~6.3.5 버전의 레거시 Blowfish 암호화 루틴에서 힙 기반 버퍼 오버플로 취약점이 발견되었습니다. 인증된 사용자가 특정 길이의 비밀번호를 사용하여 데이터 내보내기를 요청하거나 COM 메서드를 호출할 경우 서비스 거부(DoS) 또는 기타 미지정된 영향을 초래할 수 있습니다.
💡 쉬운 설명
암호화 과정에서 데이터를 저장할 공간보다 더 많은 데이터를 쓰려고 시도하여 프로그램이 멈추거나 오류가 발생하는 문제입니다. 공격자가 특정한 길이의 비밀번호를 설정하면 서버를 강제로 종료시킬 수 있습니다.
🇺🇸 원문 (English)
Heap-based buffer overflow in the legacy Blowfish encryption routine (BlowFishEncryptor::Encode, called by EncryptToString) in Progressive Robot hMailServer 6.0.0 through 6.3.5 allows an authenticated mailbox user to cause a denial of service (service crash), and possibly other unspecified impact. In 6.3.4 and 6.3.5, where the self-service REST API is enabled (it is off by default), the user does this remotely by adding a fetch account whose password is 129 to 247 characters long and not a multiple of 8, and then requesting their personal data export (GET /api/v1/me/export.zip), which encrypts that password with the legacy scheme. The same flaw is reachable on Windows by any local interactive user with no hMailServer credentials, through the COM method Utilities.BlowfishEncrypt, which checked no authentication. It is also reachable by every stored-secret write when ProtectStoredSecretsWithDPAPI is set to 0. For such a length, the routine's padding loop writes up to 7 zero bytes 2 to 232 bytes past the end of its 255-byte heap buffer. The ciphertext it returns is still correct.
📍 영향받는 시스템
Progressive Robot hMailServer 6.0.0 ~ 6.3.5
⚔️ 공격 벡터
인증된 사용자가 REST API를 통해 특정 길이의 비밀번호를 포함한 데이터 내보내기를 요청하거나, 로컬 사용자가 COM 메서드를 호출하여 공격
🛡️ 대응 방법
hMailServer를 최신 보안 패치가 적용된 버전으로 업데이트하거나, 취약한 레거시 암호화 기능 및 REST API 사용을 제한하십시오.
🔧 검증 코드
출력된 버전 번호가 6.0.0에서 6.3.5 사이인지 확인하십시오.
powershell -Command "(Get-ItemProperty 'HKLM:\SOFTWARE\hMailServer').Version"