一个硬编码凭证引发的血案:CVE-2026-20316 复现与详解
前言
前两天在整理CISA的KEV目录时看到了CVE-2026-20316,点进去一看,好家伙,又是一个硬编码凭证。说实话这种洞放在2026年真的有点说不过去,但思科把这个洞评为"高"风险等级,而且已经有在野利用,所以还是值得好好扒一扒。
这个洞到底是个什么情况
一句话总结:Cisco FMC的Web界面里藏了一个永远改不了密码的"后门账号"。
不用绕弯子,思科开发人员在FMC的代码里直接把一个低权限账号的用户名和密码写死(Hard-coded)。这就意味着不管你FMC管理员怎么改密码、怎么做安全加固,这个账号始终存在,凭证始终有效,像一颗定时炸弹埋在系统里。
攻击者要做的就只有一件事:用这个固定凭证登录FMC的Web界面。
就这么简单,不需要绕WAF,不需要打内存破坏,不需要提权,一个HTTP POST请求搞定。CVE描述里写的"无需认证即可访问"就是这个意思。
具体参数如下:
| 项目 | 内容 |
|---|---|
| CVE编号 | CVE-2026-20316 |
| 漏洞类型 | 硬编码密码(CWE-259) |
| CVSS 3.1 | 5.3(中危) |
| Cisco内部评级 | 高(High) |
| 攻击向量 | 远程网络 |
是否需要认证 | 不需要 |
漏洞原理拆解
硬编码凭证是怎么来的
很多大型企业软件为了"方便运维"或者"内部服务调用",会在代码里预置一些账号。正常做法是这些账号只在特定内部网络可用、或者通过额外认证机制保护。但这次FMC的情况是:
这个账号直接内置在Web界面的认证模块里
凭证以明文形式存在于系统文件中
无论管理员做什么操作,这个账号都无法被删除或禁用
该账号可以通过Web界面直接登录
为什么CVSS只有5.3,Cisco却评"高"
这一点挺有意思的。单独看这个漏洞,攻击者登录后拿到的只是一个低权限账户,能做的事情有限——主要是读取日志、查看配置信息等,不涉及代码执行或提权,所以CVSS打了5.3分。
但Cisco内部把这个洞定为"高"风险,原因是:
低权限访问只是第一步,配合其他FMC漏洞可以轻松实现权限提升,最终完全控制FMC。
从攻击者的角度来看,这就好比先搞到了一张门禁卡,虽然只能进大厅,但大厅里有电梯、有楼梯,只要再找到一把钥匙(或者另一个漏洞),就能直接上顶楼机房了。
MITRE ATT&CK映射
这个漏洞本质上属于T1078 - Valid Accounts(有效账户)技术。攻击者不需要自己"创建"一个账号,系统里已经有一个现成的、合法的(虽然是低权限)账号等着他用。
影响版本
说实话影响范围挺广的,基本覆盖了主流FMC版本:
| 版本分支 | 受影响范围 |
|---|---|
| 7.0.x | 7.0.0 至 7.0.9 |
| 7.2.x | 7.2.0 至 7.2.11 |
| 7.4.x | 全部 7.4.x 版本 |
| 7.6.x | 全部 7.6.x 版本 |
| 7.7.x | 全部 7.7.x 版本 |
| 10.0.x | 全部 10.0.x 版本 |
不受影响的包括云交付FMC、Firewall Device Manager这些,反正个人用户一般不会碰到。
复现思路
前置条件
靶机:一台运行受影响版本FMC的服务器,Web管理界面可达
攻击机:随便一台能访问靶机的机器,Linux/Mac/Windows都行
核心思路
这个洞复现起来其实没什么技术含量,说白了就是"用已知凭证登录"。但问题是——目前硬编码的具体凭证还没有被公开。
所以实际复现分两种情况:
情况一:你已经拿到了凭证信息(通过逆向或非公开渠道)
直接怼登录接口就行。FMC的登录接口一般是:
POST /login HTTP/1.1 Host: <FMC_IP> Content-Type: application/x-www-form-urlencoded username=<硬编码用户名>&password=<硬编码密码>判断结果:如果服务器返回了
302 Found重定向,并且Location头指向了管理后台(如/main或/dashboard),同时响应中包含了新的会话Cookie(如JSESSIONID),就说明漏洞存在。
情况二:你没有凭证信息
那就只能等凭证公开,或者自己动手逆向FMC的二进制文件/Web应用源码,找到硬编码的字符串。这个难度较高,不在本文讨论范围内。
我个人的看法
说实话,硬编码凭证这种洞放在2026年确实有点"复古"了。但思科这么大的厂商还在犯这种低级错误,说明企业内部的代码安全审计流程还是有问题。
不过话说回来,正因为利用门槛极低,这个洞的实际威胁才大。不需要什么高级技能,只要凭证信息泄露(而且迟早会泄露),随便一个脚本小子都能扫到一批FMC然后批量登录。
怎么判断自己有没有被搞
Cisco官方给了一个排查方法,在FMC的专家模式(expert mode)下执行:
cat /var/log/messages | grep license如果日志里出现了/var/tmp/license.tmp这个文件的引用,那就要警惕了。
更具体的,如果看到类似这样的记录:
www: running package_info.pl with /var/tmp/license.tmp说明www账户(很可能是那个低权限账号)执行了某些操作,基本可以判断已经被利用过了。
这时候别犹豫,立刻联系Cisco TAC,同时开始全网段排查有没有其他异常登录记录。
修复方案
补丁(唯一根治办法)
Cisco已经发布了Hotfix,去Cisco Software Center下载对应版本的补丁,然后按照Firepower Hot Fix发布说明安装。
没有其他替代方案。什么改配置、加防火墙规则都是临时缓解,治标不治本。
临时措施(在打补丁之前)
如果你一时半会儿打不了补丁,至少先做这几件事:
把FMC管理界面从公网撤下来。这个是最重要的一步,绝大多数攻击都来自互联网扫描,内网相对安全一些。
限制管理IP访问范围。在防火墙或者FMC本身的访问控制列表里,只允许运维人员的IP访问443端口。
启用多因素认证。虽然硬编码凭证绕过不了MFA,但至少能挡住其他类型的凭证泄露。
加强日志监控。盯着FMC的登录日志,特别是非工作时间段的异常登录。
写在最后
CVE-2026-20316这个洞,说复杂不复杂,就是一个典型的"开发图省事、安全留隐患"的案例。但它造成的实际影响可能比某些CVSS 9.8的洞还要大,因为太好用了,攻击者不需要任何技巧就能拿下第一层访问权限。
对于正在用FMC的团队,建议尽快评估自己是否受影响,该打补丁打补丁,该做隔离做隔离。别等到被勒索了再后悔——那时候就晚了。
参考链接:
微步在线漏洞详情:ThreatBook 用户登录
Cisco官方安全公告:cisco-sa-fmc-static-cred-BET3Cjh
CISA KEV目录:Known Exploited Vulnerabilities Catalog | CISA
本文仅用于安全技术研究和学习,请勿用于非法用途。漏洞复现请在获得授权的前提下进行。