|
Опубликован корректирующий выпуск почтового сервера 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>". Данная уязвимость может использоваться в качестве начального звена для создания условий возникновения описанного выше переполнения буфера.
|