












摘要:Cisco Secure Email Gateway 的邮件解析逻辑存在无认证 SQL 注入(CVE-2026-76461,CVSS 9.8),邮件送达即触发,攻击者可拿到底层系统 root。9 月 14 日披露当天进 CISA KEV,联邦机构修复窗口只有 3 天。本文拆利用链、给排查命令,文末附可打钩的排查清单。
关键词:CVE-2026-76461 | Cisco Secure Email Gateway | SQL 注入 | CISA KEV | 零日漏洞
关键事实
编号评分:CVE-2026-76461,CVSS 9.8,CWE-89 SQL 注入
影响产品:Cisco Secure Email Gateway(ESA)与 Secure Email Cloud,AsyncOS 15.5、16.0、16.5 三个分支
利用条件:无认证、无用户交互,邮件送达即触发,攻击面就是收信的 25 端口
后果:邮件正文里的 SQL 被解析逻辑执行,攻击者拿到底层操作系统的 root
修复状态:无任何临时缓解,只能升级,三个分支各对应一个补丁版本,云版已由官方统一升级
死线:9 月 14 日披露并同日进 CISA KEV,联邦机构修复截止 9 月 17 日,满打满算 3 天
9 月 14 日是个周一。CISA 的已知被利用漏洞目录在这一天照例更新,联邦机构拿到的宽限通常是两到三周,这条不一样,截止日期一栏写着 9 月 17 日,周四。睡前有刷 KEV 习惯的我,本来打算三十秒扫完标题就合电脑,结果在这一条上停了小十分钟。
分数本身反倒排第二,9.8 这两年见得多了,真正让我停下来的是位置:CVE-2026-76461 长在 Secure Email Gateway 的邮件解析逻辑里。这台设备在企业里的站位太特殊,所有进站邮件都得从它手里过一遍,反垃圾、防病毒、DLP 全压在它身上。换句话说,攻击者想打到它,不用找暴露在公网的管理口,不用先偷一个账号,只要往目标公司发一封邮件,收件这个动作本身就是触发器。Cisco 的 advisory(编号 cisco-sa-esa-inj-2bLVGmhX)写得很直白:无认证,无交互,攻击者可以拿到设备底层操作系统的 root 权限。
周二我把这事从头到尾捋了一遍,自家那两台网关也翻了一遍,越捋越觉得值得单独拆开讲。这是个流量侧几乎不可见的洞,全部恶意行为都裹在正常收信里,WAF 帮不上忙,EDR 也未必盯着邮件设备的数据库进程。文中的数字都对着 advisory、KEV 目录和 Rapid7 9 月 15 日那份 ETR 核过,往下看可以放心。
先把这个洞压成一句话:AsyncOS 处理进站邮件的解析逻辑,在某个环节把攻击者可控的内容拼进了 SQL 语句,没有参数化,于是邮件里的 SQL 片段被数据库当成正常指令执行了。CWE-89,教科书级别的注入,只不过宿主从 Web 应用换成了邮件网关。
要看清它的分量,得先知道 SEG 收到一封邮件之后会发生什么。邮件从 25 端口进来,先过 SMTP 会话检查,然后是策略匹配、内容扫描、反病毒解包、DLP 命中判断,每一步都要往数据库里写状态、读策略。AsyncOS 底下跑的是 PostgreSQL,邮件追踪、隔离区、报表功能全靠这套库撑着。问题就出在"解析"这步:邮件是天然的外部输入,头字段、正文、附件名、MIME 结构里塞什么都由发件人说了算,而解析逻辑要基于这些内容去查库。输入不可信,查询又不走参数化,出事只是时间问题。
设计上这套东西没有原罪。策略匹配要把每封邮件同规则表比对,隔离区要登记收件,追踪系统要为每封邮件生成记录,查库是邮件网关的日常呼吸。注入的老故事在这里换了个舞台:数据被当成代码执行。二十年来这个模式在 Web 表单里被翻来覆去地讲,参数化查询成了每个后端框架的默认动作,谁也没想到它会在一台封闭的邮件设备里,以解析邮件的姿态复活。扫描器同样找不到它:没有 HTTP 入口可探测,没有报错回显可指纹,设备也不对公网开放诊断接口。这类洞的发现渠道只剩两条,要么厂商自己在工单里撞上,要么受害者事后翻日志,这次走的是前一条。
Cisco 没有公开注入点的具体位置,哪个字段、哪个函数、哪条语句都没说。这不算意外,修复发布才三天,细节放出去等于给所有人递弹药。能确定的边界倒是清楚:触发面落在邮件解析本身,管理界面反而碰不着,所以不需要任何凭据;Cisco 明确说无用户交互,收件即中,不依赖打开附件或点链接;结果是拿到 root 级别的任意命令执行。三条叠起来,CVSS 摊到 9.8。
| 字段 | 值 |
|---|---|
| CVSS 评分 | 9.8 |
| 漏洞类型 | SQL 注入(CWE-89) |
| 认证要求 | 无 |
| 用户交互 | 无 |
| 攻击路径 | 网络,随邮件入站 |
| 利用结果 | 底层操作系统 root 级命令执行 |
这个洞的发现渠道值得单独一提。它是厂商自己在客户支持工单调查里顺出来的,不是谁拿扫描器跑出来的。Cisco 的说法是他们在工单往下查的时候撞上的。某个企业客户报了故障,工程师顺着工单往下查,查出来的东西比故障本身大得多。披露当天 KEV 同步收录,说明 CISA 已确认野外利用在先;Rapid7 在 9 月 15 日的 ETR 里补了两个关键信息:没有公开 PoC,没有归因。这枚洞在被命名之前就已经被人用过,谁在用、用了多久,眼下没人知道。对防守方来说,"已经被用过"比"可能被用"严重一个量级,排查的优先级得按已失陷来定,不能按"有风险"来定。
还有一层让 9.8 显得不夸张:拿下邮件网关的收益,配得上这个分数。所有流经的邮件可读,包括各种密码重置邮件;通讯录和组织架构直接到手;跟 AD、LDAP 集成的绑定凭据就躺在配置里;隔离区里存着钓鱼页面的登录记录,多少用户在假页面上输过真密码;出站邮件还能被篡改,商务邮件欺诈从这台设备发起,收件方几乎无从分辨。一台设备,半张企业内网的通行证。Cisco 在客户工单里把它查出来,某种意义上是替某个企业挡了一颗已经上膛的子弹。
注入只是让攻击者拿到了写 SQL 的笔,从 SQL 走到系统命令,中间还隔着一扇门。这扇门就是 PostgreSQL 的 COPY TO PROGRAM,而 Cisco 给防守方的狩猎特征,等于把答案写在了脸上:在 mail_logs 里找COPY.*TO PROGRAM。反过来读,这条特征也解释了整条攻击链为什么成立。
先补 PostgreSQL 的背景。COPY 是 PG 的批量导入导出语句,两种形态:
-- 常规形态:把查询结果导出到数据库服务端的一个文件
COPY (SELE
已在FreeBuf发表 0 篇文章
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf
客服小蜜蜂(微信:freebee1024)

此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。