内核 TCP 协议栈中存在可远程利用的漏洞 Linux

Anthropic 披露了内核 TCP 协议栈中的一个严重漏洞 (CVE-2026-98432)。 Linux该漏洞允许攻击者通过发送特制数据包来远程执行代码。目前已报告一个可用的漏洞利用程序,该程序允许攻击者在内核级别执行代码,并远程获取系统的 root 权限。该漏洞适用于攻击服务器进程接受通过支持多路径 TCP (MPTCP) 协议的网络套接字连接的系统。MPTCP 支持可以针对每个网络套接字单独启用,这是 Go 标准库的默认设置,从 Go 1.24(2025 年 2 月)开始启用。

准备好的漏洞利用程序可用于任何用 Go 语言编写的服务器应用程序,包括 Caddy HTTP 服务器,只要它能够向其创建的监听套接字发送网络数据包即可。由于该漏洞直接存在于 IPv4 协议栈中,并非 MPTCP 特有,因此可以创建不依赖 MPTCP 的漏洞利用程序,但目前尚未有此类漏洞利用程序被演示。例如,在处理套接字迁移请求时可以利用此漏洞,该请求在配置中使用了 `net.ipv4.tcp_migrate_req=1` 参数或在使用带有 `BPF_SK_REUSEPORT_SELECT_OR_MIGRATE` 选项的 eBPF 程序时可用。

该漏洞是由 TCP 连接建立过程中同时处理重传的 SYN 请求时出现的竞争条件引起的。由于 `tcp_v4_syn_recv_sock()` 函数通过引用而非复制的方式将参数从 `ireq->ireq_opt` 结构传递给子套接字,因此在某些情况下,包含套接字参数的 `inet_opt` 和 `ireq_opt` 结构的内存已被释放,但相关的套接字选项仍在继续使用(释放后使用)。

远程攻击是通过发送一系列时间同步的网络请求实现的。该漏洞利用方法适用于使用地址随机化(KASLR)的内核,但命中竞争条件窗口需要相当长的时间,并且需要大量的重试。由于错过竞争条件窗口只会导致握手,而不会导致内核崩溃,因此可以进行无限次尝试,从而简化了攻击过程。在漏洞利用原型中,攻击大约耗时一小时——48分钟用于确定内存布局,另外5分钟用于组织代码执行。

目前尚无任何变通方法能够保证彻底修复此漏洞——安装内核更新是唯一可靠的选择。该问题始于内核。 Linux 4.4 版本已修复,并在 5.10.272、5.15.223、6.1.190、6.6.159、6.12.113、6.18.56、7.2.10 和 7.3 版本中修复。您可以在以下页面查看各发行版中漏洞修复的状态: Debian, UbuntuSUSE/openSUSE、RHEL、Gentoo、Arch
软呢帽。

针对某些特定利用方法的应对措施(这些方法并不能完全阻止该漏洞),建议禁用 MPTCP 支持并将内核 sysctl 参数 net.ipv4.tcp_migrate_req 设置为 0:

sysctl -w net.mptcp.enabled=0
sysctl -w net.ipv4.tcp_migrate_req=0

要确定系统中是否存在使用套接字的进程
对于 MPTCP,您可以使用以下命令:

ip mptcp 端点显示
IP MPTCP 限制显示

要在 Go 程序中禁用 MPTCP 支持,请使用“multipathtcp=0”标志,该标志可以通过设置“GODEBUG=multipathtcp=0”环境变量来实现。要在编译时禁用 MPTCP 支持,请将“godebug multipathtcp=0”添加到 go.mod 文件中。在应用程序代码中,您可以使用 net.Dialer.SetMultipathTCP 和 net.ListenConfig.SetMultipathTCP 函数来禁用 MPTCP。

除了讨论的问题之外,Anthropic 还宣布了一系列内核中可本地利用的漏洞。 LinuxOpenBSD 和 FreeBSD 允许 root 用户访问系统并逃逸出隔离容器;Chrome 和 Safari 中的漏洞会导致在打开特制网页时在系统上执行代码;内核漏洞 Windows导致崩溃;平台漏洞 Android该攻击允许你绕过屏幕锁定,无需解锁设备即可访问个人信息和照片(该攻击已在 Google Pixel 9 智能手机上演示)。

补充:

  • 在 nginx 中,从 1.29.7 版本开始就提供了为监听网络套接字启用 IPPROTO_MPTCP 选项的功能,但默认情况下未使用。
  • 在 Lighttpd 中,从 1.4.76 版本开始,可以选择启用 MPTCP。
  • 在 Apache httpd 中,支持 MPTCP 的补丁于 2024 年添加到 Apache httpd 2.5-HEAD 分支中。
  • systemd 版本 257 添加了对通过套接字激活时启用 MPTCP 的支持。
  • 在 Apache Traffic Server 中,从 9.2.4 版本开始支持启用 MPTCP 的选项。
  • 从 HAProxy 3.1.0 版本开始,可以使用选项“mptcp{,4,6}@”。 “。”
  • 在 Traefik 中,从 2.11.26、3.4.2 和 v3.5.0-rc1 版本开始,默认启用设置 IPPROTO_MPTCP 标志。
  • 在 Valkey DBMS 中,从 9.0.0 版本开始,可以使用“--mptcp”选项以及“mptcp yes”和“repl-mptcp yes”设置。

来源: opennet.ru

为具有 DDoS 保护、VPS VDS 服务器的站点购买可靠的主机 🔥 购买具备 DDoS 防护的可靠网站托管服务,包括 VPS 和 VDS 服务器 | ProHoster