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

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

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

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
page-cache-corruption-lpes — CVE-2026-46331 和 CVE-2026-43503 | Kitploit
工具/GitHubGitHub/rjt-gupta/page-cache-corruption-lpes
权限提升漏洞分析漏洞利用CTF学习与教育二进制利用
GitHubrjt-gupta/page-cache-corruption-lpes

page-cache-corruption-lpes

CVE-2026-46331 和 CVE-2026-43503

查看仓库
123122个月前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

页缓存损坏本地权限提升漏洞(LPEs)

3 个 Linux 内核本地权限提升利用程序。与 Dirty COW 和 Dirty Pipe 相同的漏洞类别。数秒内获得 root shell。所有主流发行版均受影响。

这三个漏洞利用程序都会破坏内核的页缓存——即进程实际读取和执行的文件在内存中的副本。磁盘上的文件从未被修改。文件完整性工具不会发现任何异常。execve("/usr/bin/su") 从缓存加载 → 运行你的 shellcode → 获得 root。


漏洞利用程序

漏洞利用程序CVE机制获得 root 的时间代码行数
Dirty PeditCVE-2026-46331TC pedit 写时复制(COW)缺口(u32 回绕)< 1 秒275
skb_shiftCVE-2026-43503TCP SACK 分片传输标志丢失~10 秒500
GRO Flag LossCVE-2026-43503GRO 合并分片传输标志丢失~10 秒550

三个均为:非特权用户 → root。无需特殊权限。只需用户命名空间。


这个漏洞类型是什么?

本仓库中的每个漏洞利用程序都遵循相同模式:

1. Get page-cache pages into a kernel buffer (splice)
2. Bypass the copy-on-write defense
3. Write in-place → read-only file corrupted in memory

区别在于防御是被如何绕过的,以及由谁执行写入:

漏洞利用程序被绕过的防御写入者
Dirty Peditskb_ensure_writable(u32 回绕 → 部分 COW)skb_store_bits(直接 4 字节写入)
skb_shiftTCP SACK 期间 SKBFL_SHARED_FRAG 标志丢失ESP AES-GCM 解密(每数据包 1 字节)
GRO Flag LossGRO 合并期间 SKBFL_SHARED_FRAG 标志丢失ESP AES-GCM 解密(每数据包 1 字节)

漏洞谱系

2016  Dirty COW         COW race via mmap + fork
2022  Dirty Pipe        Stale PIPE_BUF_FLAG_CAN_MERGE in splice
2026  Copy Fail         AF_ALG in-place AEAD on page-cache scatterlist
2026  Dirty Frag        ESP skip_cow on splice'd frags (missing flag)
2026  Fragnesia         skb_try_coalesce drops SHARED_FRAG flag
2026  Dirty Pedit  ←    TC pedit COW gap, no crypto needed
2026  skb_shift    ←    TCP SACK drops SHARED_FRAG, ESP writes
2026  GRO Flag Loss ←   GRO merge drops SHARED_FRAG, ESP writes

受影响版本

漏洞利用程序引入版本修复版本受影响发行版
Dirty Peditv5.18(2022 年 5 月)v7.1-rc7Ubuntu、RHEL、Debian、Fedora、SUSE
skb_shiftv3.9(2013)v7.1-rc513 年来的所有发行版
GRO Flag Lossv3.9(2013)v7.1-rc513 年来的所有发行版

默认配置即可。无需任何加固即存在漏洞。只要运行 Linux,你就在受影响范围内。


为什么 Dirty Pedit 与众不同

skb_shift 和 GRO 使用相同的利用技术:丢失 SKBFL_SHARED_FRAG 标志,然后借助预计算的 IV 查找表,让 ESP 加密以一次一个字节的方式对页缓存页进行 XOR 写入。

Dirty Pedit 则完全是另一回事:

  • 无加密。 没有 XFRM、ESP、AES-GCM,也没有 IV 查找表。
  • 直接写入。 TC pedit 通过 skb_store_bits 精确写入你指定的字节。
  • 亚秒级。 一个数据包 = 写入 12 字节。一次性获得 root。
  • 不同的防御绕过方式。 完全不碰 SHARED_FRAG——通过整数回绕突破 skb_ensure_writable。

构建

# Build all three
cd dirty_pedit && gcc -static -O2 -o exploit exploit.c && cd ..
cd skb_shift   && gcc -static -O2 -o exploit exploit.c && cd ..
cd gro         && gcc -static -O2 -o exploit exploit.c && cd ..

每个漏洞利用程序都是一个独立的单个 C 文件。除 libc 外没有其他依赖。


运行

# Any of the three (as unprivileged user):
./exploit
# → root shell

要求:受影响版本范围内的 Linux 内核 + CONFIG_USER_NS=y(所有主流发行版默认开启)。


输出(Dirty Pedit)

[*] Dirty Pedit — Local Privilege Escalation
[*] uid=1000 pid=42
[*] Victim line at offset 186: nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
[*] Injecting user 'a' (uid=0, no password) over victim line...
[+] User 'a' injected with uid=0!
[+] Running: su a
# id
uid=0(root) gid=0(root) groups=0(root)

输出(skb_shift / GRO)

[*] uid=1000 euid=1000
[*] IV table pre-computed (256 entries)
[*] Writing 192 bytes to /usr/bin/su...
  [120] 0x00→0x48 ... OK
  [121] 0x00→0x31 ... OK
[*] Write complete: 192/192
[!] /usr/bin/su page cache overwritten!
# whoami
root

关键特性

特性Dirty Peditskb_shiftGRO
所需权限无(用户命名空间)无(用户命名空间)无(用户命名空间)
文件访问O_RDONLYO_RDONLYO_RDONLY
是否需要加密否是(AES-GCM)是(AES-GCM)
写入控制每数据包 4 字节每数据包 1 字节每数据包 1 字节
可靠性确定性确定性概率性(可重试)
K8s 容器逃逸否(无需 veth)否是(veth+GRO 默认)
攻击面geneve + TCloopback + espintcpveth + ESP-in-UDP

负责任披露

所有漏洞均已通过负责任披露流程提交给 Linux 内核安全团队和网络维护者。补丁已合并到上游,并已向后移植到稳定分支。

  • CVE-2026-46331:在 v7.1-rc7 中修复,提交 899ee91156e5
  • CVE-2026-43503:在 v7.1-rc5 中修复,提交 48f6a5356a33

这些漏洞利用程序在补丁可用后发布,仅供教育和防御目的使用。页缓存损坏只影响内存——重启或执行 echo 1 > /proc/sys/vm/drop_caches 即可恢复原始文件。


作者

Rajat Gupta — Qualcomm 攻击性安全团队


许可证

MIT

下载工具