严重的 Exim GnuTLS 缺陷可在邮件服务器上远程执行代码

Exim 发布了安全更新一个严重漏洞,该漏洞可能允许未经身份验证的远程攻击者破坏内存并可能在受影响的邮件服务器上执行代码。该缺陷被追踪为 CVE-2026-45185,并在 Exim 4.99.3 中修复。

该漏洞影响使用 GnuTLS 后端并公开 STARTTLS 和 CHUNKING 功能的 Exim 构建。攻击者不需要服务器上的帐户。他们只需要建立TLS连接并以特定方式使用BDAT命令。

这种风险很大,因为 Exim 仍然是 Unix 和 Linux 系统上部署最广泛的邮件传输代理之一。如果面向互联网的易受攻击的邮件服务器运行受影响的版本和配置,则可能会面临远程攻击。

CVE-2026-45185 有何影响

CVE-2026-45185 是一个释放后使用漏洞当服务器使用 GnuTLS 进行 TLS 处理时,在 Exim 的 BDAT 正文解析路径中。 BDAT 是 SMTP CHUNKING 扩展的一部分,它允许客户端以定义的块发送电子邮件消息正文。

该漏洞影响某些 GnuTLS 配置中 4.99.3 之前的 Exim 版本。 Exim 的公告称,受影响的系统包括使用 GnuTLS 支持构建的版本 4.97 到 4.99.x,以及公布 STARTTLS 和 CHUNKING 时。

使用 OpenSSL 或其他 TLS 库的服务器不受此特定缺陷的影响。管理员仍应验证其构建选项,而不是仅根据包名称假设它们是安全的。

物品细节
CVECVE-2026-45185
咨询 IDEXIM-安全-2026-05-01.1
受影响的软件进出口邮件传输代理
受影响的版本某些 GnuTLS 配置中 4.99.3 之前的 Exim
受影响的后端GnuTLS
后端不受影响OpenSSL 构建不受此特定路径的影响
漏洞类型释放后使用
影响堆损坏和可能的远程代码执行
固定版本进出口4.99.3

Exim BDAT 漏洞如何运作

攻击从启用 TLS 的 SMTP 会话开始。攻击者使用CHUNKING扩展,通过BDAT命令发送消息体数据。

在 BDAT 传输期间,攻击者在正文传输完成之前发送 TLS close_notify 警报。这会导致 Exim 的 GnuTLS 路径开始拆除 TLS 状态,而 BDAT 解析逻辑仍有工作要做。

然后,攻击者在同一 TCP 连接上发送最后一个明文字节。然后,Exim 可以继续使用陈旧的接收状态并写入已释放的内存。

为什么这会导致代码执行

当软件在释放内存后继续使用内存时,就会发生释放后使用。在这种情况下,Exim 可以在 BDAT 处理期间写入已释放的 TLS 传输缓冲区。

该写入可能会损坏堆内存。在适当的条件下,内存损坏可能会超越崩溃并成为代码执行路径。

NVD 条目对该漏洞的 CVSS 3.1 评分为 9.8。该向量表示网络攻击访问、攻击复杂性低、无需特权、无需用户交互以及对机密性、完整性和可用性的高影响。

CVSS因子此缺陷的含义
攻击向量网络
攻击复杂度低的
所需权限没有任何
用户交互没有任何
范围不变
影响高机密性、完整性和可用性影响
基础分数9.8 关键

为什么邮件服务器需要紧急修补

邮件服务器是高价值目标因为它们位于互联网上,为企业、托管提供商、政府机构和服务运营商处理可信通信。邮件传输代理中的远程代码执行缺陷可以为攻击者提供强大的立足点。

如果攻击者危害邮件服务器,他们可能会访问存储的消息、从本地配置文件窃取凭据、修改邮件路由、植入恶意软件、转发垃圾邮件或深入网络。

即使利用仅导致崩溃,其结果仍然会扰乱邮件传送。对于依赖电子邮件进行运营、支持、法律沟通或客户服务的组织来说,停机可能会立即产生业务影响。

  • 面向互联网的进出口服务器应受到优先审查。
  • 使用 GnuTLS 构建的系统需要紧急版本检查。
  • 广播 STARTTLS 和 CHUNKING 的服务器位于相关暴露路径中。
  • OpenSSL 构建不受此特定 GnuTLS 错误的影响。
  • 管理员应升级到 Exim 4.99.3 或供应商提供的修补程序包。

谁发现了该漏洞

该漏洞的报告者为XBOW Securit 的 Federico Kirschbaumy。 Exim 维护人员协调修复、准备安全版本,并让 Linux 发行版在公开披露之前尽早获得补丁。

XBOW 随后发表了一篇技术文章以“死信”为名。该研究解释了该错误如何出现在 GnuTLS 接收路径中,以及 BDAT 包装器如何在 TLS 关闭开始后继续处理。

Exim维护者于2026年5月12日公开发布了4.99.3版本,并建议所有受影响的用户立即升级。

管理员如何检查暴露情况

管理员应首先识别每台服务器上运行的 Exim 版本。如果软件包是使用 GnuTLS 构建的,则运行 4.99.3 之前版本的任何系统都需要仔细检查。

他们还应该检查服务器是否通告 STARTTLS 和 CHUNKING。这些功能在现代 SMTP 部署中很常见,因此许多邮件管理员应该假设暴露,直到他们验证其他功能。

软件包详细信息因 Linux 发行版而异。一些供应商可能会将修复程序反向移植到旧版本号中,因此管理员应该遵循其发行版的安全建议和更改日志,而不是仅依赖上游版本字符串。

  1. 检查已安装的 Exim 版本。
  2. 确认包是否是使用 GnuTLS 构建的。
  3. 检查是否通告了 STARTTLS 和 CHUNKING。
  4. 升级到 Exim 4.99.3 或修补的供应商包。
  5. 修补后重新启动 Exim。
  6. 查看日志中是否有崩溃、异常 SMTP 会话或可疑的 TLS 和 BDAT 活动。
  7. 修补后监视出站邮件队列是否存在滥用迹象。

没有可靠的配置解决方法可以替代修补

建议的修复方法是更新 Exim。当修补程序包可用时,管理员不应依赖部分缓解措施。

在紧急情况下,减少暴露可能涉及禁用受影响的功能或删除公共访问,直到修补完成。但是,对 STARTTLS 或 CHUNKING 的更改可能会中断邮件处理,因此应仔细测试。

更安全的操作路径是应用供应商更新、重新启动服务并验证正在运行的 Exim 进程是否使用修补后的二进制文件。

行动优先事项原因
升级到 Exim 4.99.3 或供应商补丁最高删除易受攻击的代码路径。
确认 TLS 后端高的只有 GnuTLS 版本会受到此特定错误的影响。
重新启动进出口高的确保修补后的二进制文件确实正在运行。
查看邮件日志中等的帮助检测可疑会话或崩溃活动。
监控队列和出站邮件中等的如果在修补之前发生泄露,则有助于识别滥用情况。

事件响应者应审查哪些内容

如果管理员怀疑有人利用,他们应该在轮换或重建系统之前保留日志。邮件服务器日志、系统日志、崩溃报告、核心转储和网络遥测可能有助于确定漏洞是否是目标。

响应者还应该检查是否有后利用的迹象。其中包括新用户、修改的 Exim 配置文件、可疑的二进制文件、更改的邮件路由规则、意外的 cron 作业、出站垃圾邮件和异常的网络连接。

已确认的泄露应触发服务器上存储的机密的凭证轮换。这可能包括邮件帐户密码、数据库凭据、API 密钥、中继凭据、SSH 密钥和服务令牌。

  • 保留 Exim 日志和系统日志。
  • 检查 Exim 是否异常崩溃或重新启动。
  • 检查 Exim 配置文件是否有未经授权的更改。
  • 查看邮件队列和出站流量。
  • 搜索新用户、cron 作业、服务或 SSH 密钥。
  • 如果怀疑存在泄露,请轮换存储在邮件服务器上的凭据。
  • 如果攻击者获得了代码执行权并且不能排除持久性,则重建主机。

为什么这个进出口缺陷很重要

CVE-2026-45185 很严重,因为它结合了远程可访问性、无需身份验证、常见 SMTP 功能以及可能的代码执行。这种组合为攻击者在暴露的邮件基础设施上提供了宝贵的目标面。

范围比每个 Exim 安装都窄,因为该问题取决于 GnuTLS 和公布的 SMTP 功能。尽管如此,许多 Linux 邮件服务器使用的配置值得立即检查。

组织应快速修补并验证部署。邮件服务器通常位于网络边缘,攻击者密切关注重要的 MTA 泄露,因为电子邮件基础设施可以支持间谍活动、网络钓鱼、恶意软件传递和横向移动。

FAQ

什么是 CVE-2026-45185?

CVE-2026-45185 是使用 GnuTLS 后端时 Exim BDAT 主体解析路径中的一个严重释放后使用漏洞。它可能导致堆损坏和可能的远程代码执行。

哪些 Exim 版本受到影响?

4.99.3 之前的 Exim 版本在某些 GnuTLS 配置中受到影响。 Exim 的公告特别强调了使用 GnuTLS 支持构建以及宣传 STARTTLS 和 CHUNKING 时的版本 4.97 到 4.99.x。

Exim OpenSSL 版本是否会受到影响?

不会。使用 OpenSSL 或其他 TLS 库的构建不受此特定 GnuTLS 攻击路径的影响。管理员仍应验证其包构建选项。

管理员如何修复Exim漏洞?

管理员应升级到 Exim 4.99.3 或安装其 Linux 发行版提供的修补程序包,然后重新启动 Exim 并验证修补的进程是否正在运行。

CVE-2026-45185 是否需要身份验证?

不会。未经身份验证的远程攻击者可以在受影响的 Exim 服务器上建立 TLS 连接并使用 CHUNKING BDAT SMTP 扩展来触发该漏洞。