Переполнение буфера обнаружено в нескольких IMAP клиентах, написанных на С и С++. Уязвимость может использоваться для аварийного завершения работы клиента и выполнения произвольного кода на целевой системе.
Обнаружено две уязвимости в IMAP клиентах, написанных на C и C++:
- Обработка literal огромных размеров. Множество клиентов используют malloc(literal_size+1) и затем читают это в literal. Проблема состоит в том, что, если literal_size равен UINT_MAX-1, произойдет +1 переполнение в malloc(0), но сервер позволит записать еще UINT_MAX-1 байт данных.
- Обработка почтовых ящиков огромных размеров (большое значение EXISTS в ответе). Множество клиентов используют malloc(messages_count * sizeof(struct message)) и читают данные в это.
Для успешной эксплуатации требуется, чтобы клиент соединился со злонамеренным IMAP сервером.
Уязвимые клиенты (crash - аварийное завершение работы, limited - ограниченное переполнение буфера, full - все что угодно может быть записано в буфер):
Уязвимость обнаружена в:
imap-2002b и Pine 4.53
Evolution 1.2.4
Mozilla 1.3 и 1.4a
Sylpheed 0.8.11 (including -claws)
Outlook Express 6.00.2800.1106
Eudora 5.2.1