用于检测 CVE-2026-98432 暴露情况的工具——这是一个 Linux 内核 IPv4 TCP 释放后使用漏洞(CVSS 9.8),影响 4.4 至修复前稳定分支的内核。
| 文件 | 用途 | 依赖 |
|---|---|---|
check-cve-2026-98432.sh | 本地内核版本检查——确认已修补/存在漏洞 | Shell 访问权限(SSH/控制台) |
probe-mptcp.py | 远程 MPTCP 能力探测——检测已演示的利用向量 | Python 3.9+,探测主机上的 Linux 内核 ≥ 5.6 |
scan-and-probe.sh | 将 nmap 端口发现与 MPTCP 探测串联 | nmap + 上述工具 |
chmod +x check-cve-2026-98432.sh
./check-cve-2026-98432.sh
退出码:0 已修补,1 存在漏洞,2 需要重启或手动检查。
单主机,已知端口:
python3 probe-mptcp.py <HOST> <PORT> [PORT ...]
python3 probe-mptcp.py 192.168.1.1 22 443 5060
单主机,使用 nmap 自动发现所有开放的 TCP 端口:
python3 probe-mptcp.py <HOST> $(nmap -Pn --open -p- <HOST> -oG - | grep -oP '\d+/open/tcp' | cut -d/ -f1 | tr '\n' ' ')
将两处
<HOST>都替换为目标 IP。
多主机:
chmod +x scan-and-probe.sh
./scan-and-probe.sh <HOST1> <HOST2> <HOST3>
uname -r 与各稳定分支的首个修复版本进行比较。net.mptcp.enabled 及活动的 MPTCP 监听器)。打开一个请求 MPTCP 的标准 TCP 连接,并检查服务器是否协商了 MPTCP 还是回退到普通 TCP。
PLAIN-TCP — 服务器未协商 MPTCP;已演示的 root 利用向量不存在。MPTCP-ACTIVE — 服务器协商了 MPTCP;存在暴露向量。CLOSED — 端口被过滤或拒绝。安全: 无 IP 选项、无重发/竞态、无漏洞触发。它只是一个带有 MPTCP 能力标志的普通 TCP 握手。
局限性: PLAIN-TCP 并不意味着已修补。它意味着已演示的向量被关闭。底层竞态存在于普通 IPv4 TCP 中——只有内核版本才能确认修复。
| 分支 | 首个修复版本 |
|---|---|
| 5.10.x | 5.10.272 |
| 5.15.x | 5.15.223 |
| 6.1.x | 6.1.190 |
| 6.6.x | 6.6.159 |
| 6.12.x | 6.12.113 |
| 6.18.x | 6.18.56 |
| 7.2.x | 7.2.10 |
| 7.3+ | 发布时即修复 |
sysctl -w net.mptcp.enabled=0
echo 'net.mptcp.enabled=0' > /etc/sysctl.d/90-disable-mptcp.conf
sysctl --system
这会在内核范围内禁用 MPTCP,关闭已演示的 root 利用路径。无需重启;重启后仍持久生效。大多数服务从不使用 MPTCP,因此功能影响为零。
MIT