Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
cve-2026-98432-mitigation — 针对 CVE-2026-98432 的临时 nftables 缓解措施、自动回滚以及俄语管理员指南。并非内核补丁。 | Kitploit
工具/GitHubGitHub/zombiepm/cve-2026-98432-mitigation
防御工具漏洞分析脚本与自动化配置审计网络安全错误配置事件响应
GitHubzombiepm/cve-2026-98432-mitigation

cve-2026-98432-mitigation

针对 CVE-2026-98432 的临时 nftables 缓解措施、自动回滚以及俄语管理员指南。并非内核补丁。

查看仓库
34天前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

cve-2026-98432-mitigation

Validate License: MIT

Linux 服务器的临时防护:窄范围 IPv4 TCP 过滤器、状态检查、备份与回滚。审计将内核修复与过滤器工作区分开来。

Audit:       работающее ядро → пакет → основание → UNKNOWN при нехватке данных
Protection:  inet + bridge → строгая проверка → откат через 180 секунд
Validation:  обычный TCP / IP options / UDP в отдельном namespace
Monitoring:  проверка по таймеру → журнал ошибок, без изменения firewall

这不是内核补丁,也不能保证消除所有利用变体。 该脚本为已知的 CVE-2026-98432 IPv4 TCP/IP-options 路径安装一个窄范围网络过滤器。最终修复方案是使用已确认修复该 CVE 的内核,并启动进入该内核。

建议的时效性已核实于 2026 年 11 月 1 日。在应用之前,请检查你所使用发行版厂商的最新状态。

为什么仅靠 GODEBUG 不够

Anthropic 的演示中使用了 MPTCP listener。Go Security Team 警告称:该错误本身位于内核通用的 IPv4 TCP 代码中,因此不存在 MPTCP 套接字并不能证明安全。GODEBUG=multipathtcp=0 是对已知攻击路径的额外限制,而不是对内核修复的替代。

该脚本不会修改 MPTCP,不会安装更新,不会重启应用,也不会重启服务器。该过滤器对已经打开的监听器同样生效。

具体拦截内容

两个独立的 nftables 表:

  • inet cve_2026_98432_guard:IP 头长度大于 20 字节的 IPv4 TCP 数据包;
  • bridge cve_2026_98432_guard:网桥上的同类数据包。

其余流量继续传递给现有规则。没有完整的 flush ruleset,Docker/Kubernetes/SSH 及其他服务的规则不会被替换。

这是对 IPv4 options 的过滤,而不是 TCP options。常规的 TCP timestamps、window scaling、SACK 以及标准 SSH/HTTPS 连接不会被该条件拦截。带有 IPv4 options 的合法 TCP 流量同样会被丢弃:请检查你的网络要求。

支持的安装方式

需要 Linux、root、nft、Python 3.8+、Bash 和 systemd,以及内核支持 nftables 的 inet/bridge。 该脚本不会启用发行版防火墙服务,也不会安装依赖。 --check 检查会在应用之前发现缺少必要能力的情况。

如果符合服务器策略,安装缺失工具的示例:

# Debian / Ubuntu:
sudo apt-get install nftables python3
# RHEL / Rocky / AlmaLinux:
sudo dnf install nftables python3

OpenWrt、RouterOS、BSD、Windows、旧版 NAS、无 root/CAP_NET_ADMIN 的容器以及 没有 systemd 的系统不在此安装程序的服务范围内。它们需要厂商提供的单独 说明。该脚本不能被视为通用漏洞扫描器。关于手动配置 Alpine/WSL 的配置文件,请参阅单独说明。

首先——审计

bash mitigate.sh --audit
sudo bash mitigate.sh --audit --json

审计只读取元数据和设置。它不扫描网络、不启动漏洞利用、不下载更新,也不修改 firewall。没有 root 权限时,部分结果会是 UNKNOWN。报告可能包含接口名称和 PID;发布前请对其做匿名化处理。

JSON 字段含义
patch.state运行中内核的 PATCHED、VULNERABLE 或 UNKNOWN
enforcement.enforcement仅当两张表完全匹配时才为 ACTIVE_VERIFIED
persistence.stateCONFIGURED — unit 已启用;实际 reboot 未由此验证
coverage.statePARTIAL_OR_UNKNOWN:namespaces/CNI/NetLabel 需要单独分析
rollback_timer、monitor_timer自动回滚和可选监控的状态

schema_version: 1。--audit 的退出码 0 表示报告收集已完成,并非表示不存在漏洞。请检查独立字段和 reason。

Patch assessment 将运行中内核与精确的软件包进行匹配。内置 vendor-baselines 于 2026 年 11 月 1 日验证,仅适用于 Debian 12/13:linux 6.1/6.12 和 bookworm linux-6.12。它们基于 Debian tracker。对于其他分支、Ubuntu、WSL 和未经验证的发行版,结果保持为 UNKNOWN,而不会根据 uname 编号或 changelog 中仅一次 CVE 提及来推断。对于已知的 vendor trackers,报告中会包含链接。这是对软件包元数据的信任,而非对二进制文件的认证;custom kernels 和 livepatch 需单独检查。

审计仅限于 32 个可见 netns:显示 MPTCP 监听器数量,但不证明 namespaces 的覆盖情况。如果没有足够数据,CIPSO 保持为 UNKNOWN;缺少 netlabelctl 并不能证明不存在 labeling。

管理员快速应用

请先下载并阅读代码。不要使用 curl | sudo bash。

git clone https://github.com/ZombiePm/cve-2026-98432-mitigation.git
cd cve-2026-98432-mitigation
less mitigate.sh
sudo bash mitigate.sh --check
sudo bash mitigate.sh --apply

当检测到 NetLabel/CIPSO 或 MLS 策略时,应用会在更改安装之前停止。在分析兼容性之后,需明确确认风险:

sudo bash mitigate.sh --apply --accept-ipv4-options-risk

此标志接受破坏带 IP options 的合法流量的风险,而不是 扩大防护。如果未发现 labeling 迹象,兼容性仍标记为 UNKNOWN。

执行 --apply 后,180 秒后自动回滚生效。 请保留当前终端。打开新的 SSH 连接到服务器,并从外部检查 关键服务:VPN、网站、API、邮件、集群通信。

如果一切正常,请从新连接执行:

cd cve-2026-98432-mitigation
sudo bash mitigate.sh --status
sudo bash mitigate.sh --confirm

--confirm 会取消回滚计时器。若不使用它,保护将被自动移除。 确认后,systemd 将在服务器下次启动时加载过滤器。 在确认或手动回滚之前,请勿重启服务器。

请逐个节点应用。对于 Kubernetes 和集群,请先确认 连接保持正常,然后再继续处理下一个节点。

状态检查

sudo bash mitigate.sh --status
sudo nft list table inet cve_2026_98432_guard
sudo nft list table bridge cve_2026_98432_guard
systemctl status cve-2026-98432-guard.service
journalctl -u cve-2026-98432-guard.service --no-pager

packets 0 计数器表示没有匹配的数据包,而不是没有防护。 单独检查使用 MPTCP 的程序:

sudo ss -Mlnp

不要添加 -t,如果你只想看到 MPTCP:这会将会把普通 TCP 套接字加入采样。即使 MPTCP 输出为空,也不能确认 CVE 已被消除。

在重启以及任何防火墙更改/重载之后,请重复执行 --status。 另一位管理员或防火墙管理器执行完整的 flush ruleset,可能会删除这些表。在这种情况下,请先处理管理配置;要重新加载已保存的过滤器:

sudo systemctl restart cve-2026-98432-guard.service

可选状态检查

在通过新的 SSH 连接进行检查并执行 --confirm 之后:

sudo bash mitigate.sh --watch-enable
systemctl status cve-2026-98432-check.timer
journalctl -u cve-2026-98432-check.service --no-pager
sudo bash mitigate.sh --watch-disable

定时器每 60 秒执行一次严格的 --status,加载后的首次检查在两分钟后进行。它不会恢复规则、不会修改 sysctl,也不会发送外部通知。请将 failed unit 接入你自己的监控。两次检查之间可能存在无过滤的间隙;这不是持续防护。--rollback 也会禁用此定时器。

回滚

sudo bash mitigate.sh --rollback

该命令会停止计时器、禁用 unit,并且只删除两个自身创建的表。配置文件和备份会保留以供检查。在安装修复后的内核之前,回滚会重新引入被利用的风险。

如有需要,可手动执行:

sudo systemctl stop cve-2026-98432-rollback.timer
sudo systemctl disable --now cve-2026-98432-guard.service
sudo nft delete table inet cve_2026_98432_guard
sudo nft delete table bridge cve_2026_98432_guard

创建了哪些文件

  • /etc/cve-2026-98432.nft — 仅包含此防护的规则;
  • /usr/local/sbin/cve-2026-98432-guard — 加载器/回滚;
  • /usr/local/sbin/cve-2026-98432-admin — 用于控制的 CLI 安装副本;
  • /var/lib/cve-2026-98432-guard/audit.py — 只读审计的配套脚本;
  • /etc/systemd/system/cve-2026-98432-check.{service,timer} — 仅在 --watch-enable 之后;
  • /etc/systemd/system/cve-2026-98432-guard.service — 自动启动;
  • /var/lib/cve-2026-98432-guard/backup-* — 之前的自有文件和表。

仓库中的 guard.nft 是内置规则的可读副本。mitigate.sh 对于安装和严格规则检查是自给自足的;额外的审计 在 audit.py 中实现。运行时加载器使用 /etc 中安装的文件。

限制与真正的修复

  1. 这是针对所述 IP-options 路径的临时风险降低措施。并未证明能够防护 该错误的所有可能利用方式。
  2. 主机网络命名空间中的过滤器不等于所有网络命名空间中的过滤器。 来自独立命名空间/pod 内进程的数据包可能无法通过主机过滤器。 请考虑内部接口、容器网络以及来自本地用户的威胁。
  3. NetLabel/CIPSO 可能在内核内部创建 IP options。如果没有单独检查 SELinux/Smack 和 CIPSO mappings,就不能认为此路径已被覆盖。缺少 netlabelctl 工具并不能证明不存在 labeling。
  4. Cilium、macvlan/ipvlan、XDP 以及其他绕过 host netfilter 的路径需要单独 检查。Bridge 规则明确匹配 untagged IPv4;对 VLAN-aware 桥接、硬件 offload 和所有隧道的覆盖尚未验证。
  5. IPv6 和其他 CVE 不由此措施覆盖。
  6. 在修复出现后,请检查发行版的 advisory、确切的软件包及其 changelog。仅仅更高的内核版本号并不能证明存在补丁。
  7. 使用标准包管理器安装已确认的修复。按计划 重启/切换到已修复的内核并检查 uname -r。
  8. 在确认修复后,决定是否需要进一步的过滤,或执行回滚。

截至 2026 年 10 月 30 日,Canonical 仍将多个 Ubuntu kernel flavors 标记为 易受攻击 / work in progress。不要仅仅为了更新的版本号而将任意 mainline 内核安装到生产服务器上。

测试

bash -n mitigate.sh
sudo bash mitigate.sh --verify
sudo bash tests/installer-selftest.sh
python3 tests/test_audit.py
shellcheck mitigate.sh tests/*.sh

自检在隔离的网络命名空间中运行,不会更改主机的防火墙,也不会触发漏洞利用。它检查普通 TCP 能否通过、单个带有四个安全 IPv4 NOP options 的合法 SYN 是否被阻止,以及带有 IPv4 options 的 UDP 是否得以保留。这是对规则的检查,而非对内核漏洞的检查。

第二个测试使用独立的 mount/network 命名空间和 systemd 模拟:检查安装、在存在待处理回滚时拒绝重复应用、确认、重新安装、手动/自动回滚,以及保留他人的防火墙表。特别是,没有 drop 规则的空表应使 --status 失败,即使 unit 处于活动状态。该测试不会更改真实服务和主机文件系统。新的回归测试会拒绝错误的优先级、过早的 accept、不可达链中的 DROP、rate-limited DROP、协议替换以及缺少 IHL 检查;失败的 --confirm 会保留回滚计时器。还会检查 CIPSO 冲突时的拒绝,以及没有自动应用的计时器。nftables 的 JSON 可能省略冗余的 EtherType:符号化的 IP payload 已经指定了 IPv4,检查会考虑这一规范化。带有 dormant 标志的表也不被视为有效防护。

原始配置文件和之前的安装程序已在真实的 Linux/systemd 节点上通过新的 SSH 连接进行过验证。v0.2.0 的新功能通过了带 systemd 模拟的隔离测试;真实的 reboot、timer 以及所有发行版未重新验证。CI 在 Ubuntu 22.04 和 24.04 上运行检查。

原始来源

下载工具