当前位置:首页>Linux>DirtyClone:Linux 内核第四个"脏"漏洞,克隆网络包污染内存提权

DirtyClone:Linux 内核第四个"脏"漏洞,克隆网络包污染内存提权

  • 2026-10-11 05:40:21
DirtyClone:Linux 内核第四个"脏"漏洞,克隆网络包污染内存提权

网络安全领域深耕几十年,每日分享当下最新网络安全事件,喜欢的朋友可以点点关注~


6 月 25 日,JFrog 安全研究团队发布了 DirtyClone 漏洞的完整利用演练——这是 DirtyFrag 漏洞家族的最新变种,编号 CVE-2026-43503,CVSS 评分 8.8。

这是近期 Linux 内核暴露的第四个同类提权漏洞,攻击模式相同:文件后备内存被当作网络包数据处理,原地网络操作覆盖了本应只读的内存页。

关键特征:

  • 本地用户可利用内核复制网络包时的安全标志丢失,污染文件后备内存
  • 攻击者通过 IPsec 隧道覆盖 /usr/bin/su 等特权二进制文件,实现 root 提权
  • 文件系统中的二进制文件未被修改,文件完整性检测失效
  • 主线补丁已于 5 月 21 日合入,但大量生产系统仍未更新

文件完整性检测(FIM)对这类攻击无效——攻击者只修改内存中的副本,磁盘文件完好如初。等到你发现异常,root shell 已经打开了。


漏洞原理:丢失的安全标志

内核复制网络包时的缺陷

当 Linux 内核内部复制网络包(skb,socket buffer)时,两个辅助函数会丢弃一个安全标志:

SKBTX_SHARED_FRAG

这个标志原本用于标记:该内存页与磁盘上的文件共享。丢失这个标志后,内核误以为该内存页可以安全地进行原地修改。

攻击链

攻击者的利用步骤:

第一步:加载特权二进制文件到内存

攻击者将 /usr/bin/su 或其他 setuid root 二进制文件加载到内存页。

第二步:将内存页绑定到网络包

通过精心构造的操作,将这些内存页绑定到一个网络包的数据区。

第三步:强制内核克隆该网络包

触发内核的 skb 克隆操作,克隆后的包会通过攻击者控制的 IPsec 隧道。

第四步:IPsec 解密覆盖二进制文件

由于安全标志丢失,IPsec 解密操作会原地修改内存页,覆盖 /usr/bin/su 的登录校验逻辑,替换为攻击者选择的任意代码。

第五步:执行被污染的二进制文件

下次任何用户执行 su 命令时,运行的是被修改后的版本,直接获得 root shell。

为什么文件完整性检测失效?

整个攻击过程只修改内存中的页缓存副本,磁盘上的 /usr/bin/su 文件完好无损。

  • 文件完整性监控工具(如 AIDE、Tripwire)检查的是磁盘文件
  • 系统审计日志没有记录异常修改
  • 重启后,内存中的修改消失,二进制文件恢复正常

攻击者已经拿到了 root 权限,你还在检查日志。


影响范围

受影响的发行版:

  • Debian(默认启用非特权用户命名空间)
  • Ubuntu(默认启用非特权用户命名空间)
  • Fedora(默认启用非特权用户命名空间)

受影响的内核版本:

  • 未打 DirtyFrag 完整补丁链的所有内核
  • 主线内核 v7.1-rc5 之前版本
  • 缺少 CVE-2026-46300 和 CVE-2026-43503 补丁的稳定版/LTS 内核

高风险环境:

  • 多租户云服务器
  • Kubernetes 集群(节点共享页缓存)
  • CI/CD Runner(允许用户创建命名空间)
  • 容器宿主机(容器内的修改影响宿主机页缓存)

Ubuntu 24.04 及更高版本的缓解:

Ubuntu 24.04+ 通过 AppArmor 限制命名空间创建,阻止了默认利用路径。但如果攻击者已有 CAP_NET_ADMIN 权限,仍然可以利用。


利用条件

攻击者需要满足以下条件:

本地访问

攻击者需要在目标系统上拥有一个本地用户账号(即使是低权限用户)。

CAP_NET_ADMIN 能力

攻击者需要获得 CAP_NET_ADMIN 能力,用于配置 IPsec 隧道。在 Debian、Ubuntu、Fedora 上,普通用户可以通过创建非特权用户命名空间(unprivileged user namespace)自动获得该能力。

受影响的内核模块

系统加载了 esp4、esp6 或 rxrpc 内核模块(用于 IPsec 和 RxRPC 协议)。


防御建议

立即更新内核

检查内核版本是否包含补丁:

# 检查内核版本
uname -r

# Ubuntu/Debian 检查补丁状态
dpkg -l | grep linux-image

# RHEL/CentOS 检查补丁状态
rpm -qa | grep kernel

主线内核修复版本:v7.1-rc5(commit 9e171fc1d7d7)

各发行版已发布补丁:

  • Debian:security-tracker.debian.org/tracker/CVE-2026-43503
  • Ubuntu:ubuntu.com/security/CVE-2026-43503
  • Fedora:bugzilla.redhat.com/show_bug.cgi?id=2480902

临时缓解措施

如果无法立即更新内核,可以:

禁用非特权用户命名空间:

sysctl -w kernel.unprivileged_userns_clone=0

封禁相关内核模块:

# 封禁 IPsec 模块
echo"install esp4 /bin/true" >> /etc/modprobe.d/block-esp.conf
echo"install esp6 /bin/true" >> /etc/modprobe.d/block-esp.conf

# 封禁 RxRPC 模块
echo"install rxrpc /bin/true" >> /etc/modprobe.d/block-rxrpc.conf

容器环境加固

在 Kubernetes 集群中:

  • 限制 Pod 的 CAP_NET_ADMIN 能力
  • 禁止普通用户创建特权容器
  • 启用 Pod Security Policy(PSP)或 Pod Security Admission(PSA)
# Pod Security Policy 示例
apiVersion:policy/v1beta1
kind:PodSecurityPolicy
spec:
allowedCapabilities: []
# 不允许 CAP_NET_ADMIN

监控异常行为

虽然文件完整性检测对这类攻击无效,但可以监控:

  • 异常的命名空间创建行为
  • 非 root 用户加载内核模块
  • 异常的 su、sudo 执行记录
  • 内核日志中的 IPsec 相关异常

建议部署 Trellix Endpoint Security(HX),通过行为分析检测异常的权限提升尝试,而非仅依赖文件完整性检测。


附录:DirtyFrag 漏洞家族时间线

CVE-2026-31431(Copy Fail)

  • 发现时间:2026 年 4 月
  • 利用模块:algif_aead
  • 攻击方式:通过 AEAD 加密接口实现 4 字节页缓存写入

CVE-2026-43284 & CVE-2026-43500(DirtyFrag)

  • 发现时间:2026 年 5 月
  • 利用路径:更广泛的 skb 处理路径
  • 攻击方式:与 DirtyClone 类似,通过 skb 原地修改污染页缓存

CVE-2026-46300

  • DirtyFrag 的补丁绕过变种
  • 修复不完全的系统仍然受影响

CVE-2026-43503(DirtyClone)

  • 披露时间:2026 年 6 月 25 日
  • 特点:首个公开 PoC 的 DirtyFrag 变种
  • 补丁时间:2026 年 5 月 21 日(主线内核)

这是今年 Linux 内核暴露的第四个"脏"漏洞——相同的攻击模式,不同的利用路径。 补丁已经发布了 5 个月,但你的服务器内核更新了吗?攻击者只需要一个本地用户账号 + 默认配置的系统,就能拿到 root。检查你的内核版本,现在就去更新。

Miasma 蠕虫进化:npm + GitHub Actions + Go 三栖攻击,开发者凭证成猎物
制造业最危险的入口:PTC Windchill 遭在野利用,CISA 紧急拉黑

网络安全领域深耕几十年,每日分享当下最新网络安全事件,喜欢的朋友可以点点关注~

最新文章

随机文章