Уязвимости в Cyrus IMAP

24/11/2004 13:33

Stefan Esser из немецкой компании e-matters сообщил о существовании уязвимостей в популярном серверном ПО Cyrus IMAP, предназначенного для обеспечения клиентов почтой по протоколам IMAP, POP3, KPOP (доставка). В процессе аудита исходного кода были обнаружены 4 уязвимости, существование которых может проявляться различным образом: переполнение буфера в стеке, переполнение буфера из-за некоректной проверки границ вводимых данных. В зависимости от уровня атакующего возможны различные ситуации, вплоть до возможности выполнения произвольного кода. Если вкратце, то эти уязвимости можно сформулировать так: переполнение буфера на этапе предварительной аутентификации при активации опции imapmagicplus, которая вызывается при выполнении команд PROXY и LOGIN, так как не проверяется длина вводимого имени пользователя. Вторая уязвимость связана с возможностью выхода за пределы выделяемого адресного пространства процесса из-за возможности перезаписи бита управляющей стуктуры выделения памяти функции malloc(), что может вести к получению контроля над данными, выводимыми кучей (heap). Подобная ситуация возможна из-за некорректной реализации команды PARTIAL. Подобная же уязвимость обнаружена в алгоритме обработки команды FETCH. Ну и последняя уязвимость связана с использованием неопределённой конструкцией программирования при реализации команды APPEND при использовании функции fatal(), поведение которой не определено стандартом ANSI C (имеется в виду различное поведение счётчика после выполнения операции выделения памяти в разных версиях компилятора gcc). Уязвимости обнаружены в версиях Cyrus IMAP <= 2.2.8. Администраторам рекомендовано обновить версию Cyrus IMAP на недавно вышедшую 2.2.9.
Описание