云望IT

Linux 内核曝 DirtyClone 高危漏洞:本地用户可提权至 root,影响全系主流发行版

发布于 2026-06-27 23:20:00713 次阅读

一、情况概述

JFrog 安全研究团队披露了 Linux 内核本地提权漏洞 DirtyClone(CVE-2026-43503),CVSS 评分 8.8。该漏洞属于 DirtyFrag 家族的新变种,因 __pskb_copy_fclone() 等函数在克隆 socket buffer 时丢失 SKBFL_SHARED_FRAG 标志,导致内核将只读 page cache 内存误判为可写网络缓冲区。攻击者通过本地 IPsec 处理即可静默篡改内存中的特权可执行文件(如 /usr/bin/su)并获取 root 权限,且不留内核日志或审计痕迹。

Debian、Ubuntu、Fedora 等默认启用非特权用户命名空间的发行版风险最高,多租户云环境和 Kubernetes 集群尤需警惕。该漏洞已于 5 月 21 日在 Linux v7.1-rc5 中修复,Ubuntu 等发行版已发布补丁内核。

二、风险详情

1. 漏洞成因

DirtyClone 属于 DirtyFrag 漏洞家族的新变种,其根因位于 Linux 内核网络子系统中。__pskb_copy_fclone() 等函数在执行 socket buffer(skb)克隆操作时,未能正确保留 SKBFL_SHARED_FRAG 标志位。该标志用于标识 page cache 中的共享只读页,标志丢失后内核将原本只读的 page cache 页错误地视为可写网络缓冲区。

攻击者利用这一逻辑缺陷,通过本地 IPsec 处理流程构造恶意网络数据包,将只读页缓存映射为可写内存,进而实现对系统特权可执行文件的静默篡改。

2. 漏洞特征

  • 无需交互:攻击者仅需拥有本地普通用户权限,无需任何用户交互即可触发漏洞利用。
  • 不留痕迹:篡改操作仅作用于内存中的 page cache,不触发磁盘写入,内核日志和审计系统中无任何异常记录。
  • 稳定利用:属于内核逻辑缺陷而非条件竞争,利用过程稳定可靠,不易引发系统崩溃。

三、风险危害

1. 本地权限提升

任何无特权的本地普通用户均可利用该漏洞篡改高权限可执行文件(如 /usr/bin/su/usr/bin/sudo),直接获取系统 root 权限。

2. 容器逃逸与跨租户攻击

由于宿主机与容器共享内核 page cache,容器内的攻击者可篡改宿主机的特权二进制文件,实现容器逃逸并接管 Kubernetes 节点或宿主机。

3. 云环境隔离失效

在多租户云平台、CI/CD 执行环境、Serverless 容器等场景中,攻击者可跨越租户隔离边界,影响同节点上的其他租户工作负载。

四、受影响范围

受影响的操作系统及版本:

  • Ubuntu:22.04 LTS / 24.04 LTS(默认启用非特权用户命名空间)
  • Debian:Bookworm 及更高版本(默认启用非特权用户命名空间)
  • Fedora:全系列(默认启用非特权用户命名空间)
  • RHEL / CentOS / Rocky / Alma:默认未启用非特权用户命名空间,风险相对较低但仍受影响
  • Kubernetes 集群:使用默认配置的容器环境

修复版本:

  • Linux 内核主线:v7.1-rc5 及以上(2026 年 5 月 21 日修复)
  • Ubuntu:已发布对应补丁内核版本

不受影响的场景:

  • 已禁用非特权用户命名空间的系统(kernel.unprivileged_userns_clone = 0
  • 已加载修复补丁的内核版本

五、排查方法

1. 确认是否启用非特权用户命名空间

sysctl kernel.unprivileged_userns_clone

若返回 kernel.unprivileged_userns_clone = 1,则系统默认允许非特权用户创建用户命名空间,面临较高风险。

2. 检查内核版本

uname -r

若内核版本低于修复版本,则可能受影响。

3. 检查是否加载 IPsec 相关内核模块

lsmod | grep -E "esp4|esp6|rxrpc"

若上述模块已加载,攻击面进一步扩大。

4. 注意

由于该漏洞仅修改内存中的 page cache,对磁盘文件执行 md5sumsha256sum 校验无法检测是否已遭受攻击。

六、处置与修复建议

1. 升级内核(首选方案)

各主流 Linux 发行版已发布包含修复的内核更新。建议尽快升级至修复版本并重启系统。

# Ubuntu / Debian
apt update && apt upgrade linux-image-$(uname -r)

# Fedora
dnf update kernel

# RHEL / CentOS / Rocky / Alma
dnf update kernel

升级后需重启系统使新内核生效:

systemctl reboot

2. 临时缓解措施

若暂时无法升级内核,可采取以下措施降低风险:

方案一:禁用非特权用户命名空间

echo "kernel.unprivileged_userns_clone = 0" > /etc/sysctl.d/99-disable-userns.conf
sysctl -p /etc/sysctl.d/99-disable-userns.conf

注意:禁用非特权用户命名空间可能影响容器运行时(如 Docker、Podman)及部分应用程序的正常使用。

方案二:屏蔽 IPsec 相关内核模块

# 屏蔽 esp4 模块
echo "install esp4 /bin/false" > /etc/modprobe.d/disable-esp4.conf

# 屏蔽 esp6 模块
echo "install esp6 /bin/false" > /etc/modprobe.d/disable-esp6.conf

# 屏蔽 rxrpc 模块
echo "install rxrpc /bin/false" > /etc/modprobe.d/disable-rxrpc.conf

说明:屏蔽上述模块可能影响 IPsec VPN 连接、Kubernetes 集群通信及使用 rxrpc 的网络服务。

七、修复优先级建议

建议按照以下优先级开展处置:

优先级处置对象原因
P0多租户云环境 / Kubernetes 集群容器共享内核 page cache,容器逃逸风险极高
P0默认启用非特权用户命名空间的发行版(Ubuntu / Debian / Fedora)攻击面更大,利用门槛低
P1CI/CD 执行器 / Serverless 容器多租户隔离场景,跨租户攻击风险
P2普通服务器 / 单用户环境风险较低,但建议按计划升级

八、总结

DirtyClone(CVE-2026-43503)是 DirtyFrag 家族的高危本地提权漏洞,CVSS 评分 8.8。该漏洞利用 Linux 内核 __pskb_copy_fclone() 等函数在处理 socket buffer 克隆时丢失 SKBFL_SHARED_FRAG 标志的逻辑缺陷,允许本地攻击者通过 IPsec 处理流程将只读 page cache 映射为可写内存,静默篡改特权可执行文件获取 root 权限,且不留下内核日志或审计痕迹。

建议受影响用户尽快升级内核至修复版本。若短期内无法升级,应优先禁用非特权用户命名空间,或屏蔽 esp4、esp6、rxrpc 内核模块作为临时缓解措施。

九、外部参考