Организации, использующие DavMail для подключения стандартных почтовых клиентов к Microsoft Exchange или Office 365, на этой неделе получили обновление. Версия 6.6.0 устраняет предупреждение системы анализа кода, связанное с уязвимостью в регулярных выражениях, корректирует обработку OAuth-перенаправлений в соответствии с недавним изменением от Microsoft и включает исправления в подсистемах IMAP, SMTP, CalDAV и CardDAV.

Изменение в области безопасности заменяет регулярное выражение в методе replaceIcal4Principal на простые вызовы подстрок, устраняя проблему, обнаруженную системой сканирования кода GitHub. Парсинг на основе регулярных выражений может создавать риск ReDoS при обработке ввода, контролируемого злоумышленником; подход с использованием подстрок исключает этот риск в данном участке кода.
Microsoft изменила поведение конечной точки OIDC-перенаправления, используемой для аутентификации нативных клиентов, которая теперь перенаправляет на /common/wrongplace. DavMail 6.6.0 обновляет URI перенаправления по умолчанию на https://localhost/common/oauth2/nativeclient, чтобы восстановить процесс аутентификации. В выпуск также включён запрос от сообщества, добавляющий поддержку аутентификатора с кодом устройства для O365, а обработка областей действия OAuth перенесена в Settings.getOauthScope().
Устранены две ошибки, связанные с соответствием стандарту RFC 3501 для IMAP: одна влияла на сложные поисковые запросы с использованием условия NOT, другая обеспечивает постоянное кодирование значений заголовков конвертов для поддержания совместимости с определёнными почтовыми клиентами. Со стороны SMTP DavMail теперь разрешает отправку нескольких сообщений с одинаковым идентификатором, если они адресованы разным спискам получателей, а также пересмотрена логика флага smtpAllowDuplicateSend.
CardDAV добавляет поддержку формата дня рождения VCARD4 yyyyMMdd и переключает кодирование фотографий контактов на формат data URL по RFC 2397. Метод getCalendarEmail в CalDAV теперь определяет адреса общих календарей из почтового ящика календаря, а не из электронной почты подключённого пользователя.
Расположение файла конфигурации по умолчанию теперь соответствует спецификации XDG Base Directory. Пользователям Linux после обновления следует проверить пути к своим конфигурационным файлам.
Пакет Debian теперь включает поддержку JDK 21 и перемещает зависимость SWT из раздела suggests в depends. Версия SWT для пакетов Windows обновлена до 4.37. Новая команда davmail swt в платформенно-независимом пакете загружает последний SWT jar, а параметр davmail.enableTray управляет поведением иконки в системном трее, которая по умолчанию отключена в Linux. Флаги командной строки -notray и -tray переопределяют эту настройку.
Основной объём коммитов посвящён бэкенду Microsoft Graph API, который разрабатывается в DavMail как долгосрочная замена слоя Exchange Web Services. Работа в этом выпуске включает поиск LDAP, синхронизацию контактов, обработку событий CalDAV, управление повторяющимися событиями и поиск людей через конечную точку /search/query. Бэкенд ещё не готов для промышленной эксплуатации и требует дальнейшей доработки.

Обязательно к прочтению:

Подпишитесь на ежемесячную рассылку Help Net Security без рекламы, чтобы быть в курсе важнейших инструментов кибербезопасности с открытым исходным кодом. Подписаться можно здесь!
