Exim漏洞允许在服务器上执行远程代码

В почтовом сервере 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 в файле конфигурации.

来源: opennet.ru

为具有 DDoS 保护、VPS VDS 服务器的站点购买可靠的主机 🔥 购买具备 DDoS 防护的可靠网站托管服务,包括 VPS 和 VDS 服务器 | ProHoster