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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2017-5123 — CVE-2017-5123 内核漏洞的复现,该漏洞通过 waitid 系统调用的内存写入实现本地提权,并在 Linux 4.13 上的 Docker 容器逃逸中演示。 | Kitploit
工具/GitHubGitHub/teawater/cve-2017-5123
权限提升漏洞分析漏洞利用容器逃逸二进制利用
GitHubteawater/cve-2017-5123

CVE-2017-5123

CVE-2017-5123 内核漏洞的复现,该漏洞通过 waitid 系统调用的内存写入实现本地提权,并在 Linux 4.13 上的 Docker 容器逃逸中演示。

查看仓库
27年前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

README

注意: 此仓库中的代码用于演示安全容器沙箱技术(如 kata containers)的隔离性,并非旨在攻击任何平台。

如何复现

  • 获取 Linux 内核 4.13.0
  • 应用补丁 0001-CVE-2017-5123-help-to-make-attack-safely.patch
  • 使用 Kconfig 配置构建 Linux 内核
  • 启动内核,并通过以下命令获取 dac_mmap_min_addr、have_canfork_callback、prepare_kernel_cred、commit_creds、set_fs_root、copy_fs_struct、current_task 的地址。 将地址更新到 CVE-2017-5123.c 中
root@kitploit:~
echo 0 > /proc/sys/kernel/kptr_restrict
cat /proc/kallsyms
  • gdb vmlinux
  • 获取 TASK_FS_OFFSET 的大小,并将地址更新到 CVE-2017-5123.c 中
root@kitploit:~
(gdb) p &(((struct task_struct *)0)->fs)
  • 获取 TASK_PARENT_OFFSET 的大小,并将地址更新到 CVE-2017-5123.c 中
root@kitploit:~
(gdb) p &(((struct task_struct *)0)->parent)
  • 获取 FS_ROOT_OFFSET 的大小,并将地址更新到 CVE-2017-5123.c 中
root@kitploit:~
(gdb) p &(((struct fs_struct *)0)->root)
  • 使用 --static 编译 CVE-2017-5123.c,并将生成的二进制文件放入 Docker 镜像中。
  • 使用内核命令行参数 "nosmep" 启动内核。
  • 现在,使用该 Docker 镜像即可运行。

关于此 CVE

上游内核中的 waitid 实现未限制复制信息结果的目标目的地。这可能导致本地用户向本应受保护的内核内存进行写入,进而实现权限提升。
该漏洞于 2017-05-21 引入,并在 2017-10-09 修复。

此 CVE 已在 4.13 分支的后续版本以及更新的主线内核中得到修复。然而,可能存在类似的 CVE 允许权限提升。该 CVE 实际上与著名的 dirty cow,CVE-2016-5195 非常相似。

更多信息

CVE-2017-5123.c 利用此漏洞修改 /proc/sys/vm/mmap_min_addr 的值,然后让 Linux 内核调用 shellcode 以获取主机根目录的文件访问权限。

下载工具