Опубликован корректирующий выпуск почтового сервера Exim 4.99.1, в котором устранена уязвимость (CVE-2025-67896), позволяющая удалённому атакующему повредить содержимое памяти вне выделенного буфера. Потенциально проблема может использоваться для удалённого выполнения кода на сервере, но рабочий эксплоит пока не подготовлен.
Уязвимость присутствует в коде для работы с внутренней БД (Hints DB) на базе SQLite, используемой для хранения временной информации, состояния доставки сообщений и сведений об интенсивности отправки писем. Проблема вызвана тем, что записи из БД напрямую преобразовывались во внутреннюю структуру «dbdata_ratelimit_unique» без надлежащей проверки. Возникала ситуация, когда создавался фиксированный массив «bloom», размером 40 байт, а содержимое поля «bloom_size», определяющего число записываемых в массив элементов, зависело от размера данных в БД. Атакующий мог организовать запись за пределы выделенного буфера, разместив в БД данные (используя ещё одну уязвимость), при которых поле «bloom_size» принимало значение, заведомо большее, чем размер массива.
Проблема проявляется в выпусках Exim 4.99 и 4.98.2, и затрагивает только конфигурации с ACL ratelimit, в которых используются параметры «unique» или «per_addr» (например, «warn ratelimit = 100 / 1h / per_addr / $sender_address» или «warn ratelimit = 100 / 1h / per_rcpt / unique=$sender_address»). Кроме того, для совершения атаки Exim должен быть собран с поддержкой SQLite (USE_SQLITE=yes), активированной в файле конфигурации (hints_database = sqlite). В уязвимых конфигурация при запуске «exim -bV» выводится «Hints DB: Using sqlite3».
Из крупных дистрибутивов проблемные версии использовались в Debian 13, Ubuntu 25.10, SUSE/openSUSE, Arch Linux, Fedora и FreeBSD. RHEL и производные дистрибутивы проблеме не подвержены, так как Exim не входит в их штатный репозиторий пакетов (в EPEL обновление к пакету exim пока не опубликовано).
Также отмечается выявление нового вектора для эксплуатации уязвимости CVE-2025-26794, устранённой в февральском выпуске Exim 4.98.1. Уязвимость позволяет осуществить подстановку SQL-кода во внутреннюю БД (Hints DB). Ранее добавленное исправление не экранировало одиночные кавычки. Пример команды MAIL FROM, приводящей к подстановке SQL-кода: «MAIL FROM:<«x’/**/UNION/**/SELECT/**/X'<hex_blob>’—«@attacker.com>». Данная уязвимость может использоваться в качестве начального звена для создания условий возникновения описанного выше переполнения буфера.
Источник: opennet.ru
