В почтовом сервере Exim выявлена критическая уязвимость (CVE-2026-45185), позволяющая удалённо добиться выполнения кода на сервере. Проблема проявляется начиная с ветки Exim 4.97 при сборке с библиотекой GnuTLS ("USE_GNUTLS=yes") и устранена в выпуске Exim 4.99.3. Сборки с OpenSSL и другими библиотеками, отличными от GnuTLS, уязвимость не затрагивает. Проблема вызвана обращением к уже освобождённой памяти (use-after-free) в бэкенде к GnuTLS и может быть эксплуатирована при обращении к серверам, поддерживающим расширение "ESMTP CHUNKING" и команду BDAT для передачи порциями тела письма вместо передачи неделимым блоком при помощи команды DATA. Повреждение содержимого памяти процесса возникает при инициировании клиентом преждевременного завершения сеанса TLS при помощи команды close_notify во время передачи тела сообщения через BDAT и отправки следом в том же TCP-соединении одного байта без шифрования в открытом виде. Получив команду close_notify в бекенде GnuTLS вызывается функция прерывания TLS-сеанса, которая освобождает связанные с сеансом буферы. Из-за ошибки в коде бэкенда, несмотря на освобождение TLS-буфера обработчик BDAT продолжает читать данные из потока и вызывает функцию ungetc(), что при отправке следом незашифрованных данных приводит к записи одного байта в уже освобождённый буфер. Данный байт повреждает метаданные аллокатора памяти в куче (heap), что было использовано для проведения экспериментов по созданию эксплоита, выполняющего произвольный код на сервере. Вначале исследователи сгенерировали частично работающий эксплоит через AI, который позволил добиться выполнения кода, но был работоспособен только в тепличных условиях, на системах с отключённой защитой ASLR и PIE, и определённой версией библиотеки libc. Далее была предпринята попытка создания эксплоита при участии человека, в которой часть трудностей удалось преодолеть и добиться утечки адреса стека, но до запланированной даты раскрытия информации об уязвимости эксплоит не был доведён до конца. По мнению выявивших уязвимость исследователей AI-ассистенты ещё способны создавать эксплоиты для сложных продуктов, но надеются, что в будущем другие исследователи смогут довести их работу до конца и написать полноценно работающий эксплоит. Из крупных дистрибутивов версии Exim 4.97+ используются в Debian 13, Ubuntu 24.04+, SUSE/openSUSE, Arch Linux, Alpine Linux 3.19+, ALT Linux p11, ROSA, Gentoo, OpenWRT, Fedora, EPEL (exim не входит в штатный репозиторий RHEL) и FreeBSD. Сборка Exim с GnuTLS применяется по умолчанию в Debian и Ubuntu, в других дистрибутивах требует уточнения. В качестве обходного пути блокирования уязвимости можно отключить расширение CHUNKING при помощи настройки chunking_advertise_hosts в файле конфигурации.
Источник: https://www.opennet.ru/opennews/art.shtml?num=65436
Источник: https://www.opennet.ru/opennews/art.shtml?num=65436