CVE-2026-41016Apache Airflow 的 SMTP provider `SmtpHook` 在调用 Python 的 `smtplib.SMTP.starttls()` 时未提供 SSL 上下文,导致未对 TLS 升级进行证书验证。位于 Airflow worker 与 SMTP 服务器之间的攻击者可利用中间人攻击,通过提供自签名证书完成 STARTTLS 升级,进而截获后续 `login()` 调用中发送的 SMTP 凭据。建议用户升级至包含修复的 `apache-airflow-providers-smtp` 版本。
该漏洞源于 Apache Airflow 的 SMTP provider 在实现时存在逻辑缺陷。当 `SmtpHook` 尝试建立加密连接时,它直接调用了 Python 标准库 `smtplib` 中的 `starttls()` 方法,且未传入 `ssl.create_default_context()` 或自定义的 SSL 上下文参数。这导致底层的 TLS 握手过程默认不验证服务器的证书链。在正常的 TLS 流程中,客户端应验证服务器证书的合法性(如颁发机构、域名匹配等),但在该漏洞场景下,客户端会接受任何证书。因此,位于网络路径上的攻击者可以拦截流量,伪造一个自签名证书并扮演 SMTP 服务器。由于客户端不验证证书,连接建立成功,Airflow Worker 随即发送明文的用户名和密码,导致凭据泄露。