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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2023-5178 — CVE-2023-5178 的漏洞利用程序 | Kitploit
工具/GitHubGitHub/rockrid3r/cve-2023-5178
权限提升内存取证漏洞分析漏洞利用学习与教育二进制利用
GitHubrockrid3r/cve-2023-5178

CVE-2023-5178

CVE-2023-5178 的漏洞利用程序

查看仓库
752年前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2023-5178

CVE-2023-5178:NVMe-oF-TCP 漏洞 的利用程序,该漏洞是 NVMe-oF-TCP 驱动程序在处理损坏的 Initialize Connection Request 时的一个逻辑错误。它导致 kmalloc-96 中的竞态双重释放,可以被利用来获得 LPE(参见下面的演示)。

该漏洞利用针对 Ubuntu 23.10 及 6.5.0-9-generic 内核(最新受影响的内核版本)。

  • 通过更改内核符号和调整 ropchain,可以轻松地将其移植到早期的 v6 内核。
  • 移植到内核版本 v5 需要进行一些小的修改,我将在文章中进行讨论。在 v5 内核上进行利用更容易(我将在文章中讨论),并且更可靠。

该漏洞由 Alon Zahavi 发现。他在这篇 openwall 文章 中发布了很好的漏洞描述。

DEMO

视频见 此处。 演示图片1 演示图片2

Requirements

  • 你应该将 nvmet、nvmet-tcp 模块加载到内核中。
  • 确保你安装了 libfuse3-dev(Ubuntu 默认安装,但无论如何)。如果没有,最好从 github 下载并编译发布版本。我使用了 3.14.0,但其他版本应该也能工作。
  • 目前该利用仅在 1个CPU核心 的机器上有效。这只是关于 SLUB 的工作原理,但竞态条件使情况有些棘手。无论如何,我将在文章中描述如何改进以支持多CPU机器。

Setup

root@kitploit:~
git clone https://github.com/rockrid3r/CVE-2023-5178
cd CVE-2023-5178
make
./build/xpl # run the exploit
  • 如果你没有 libfuse3-dev,你应该手动链接编译好的 libfuse。查看 Makefile 了解如何编译。将 -lfuse3 替换为 -l:path-to-libfuse.so。别忘了添加头文件路径 -I /path/to/libfuse-headers/。 使用以下命令运行利用:
root@kitploit:~
LD_PRELOAD_PATH=/path/to/libfuse.so ./build/exploit

POC

对于想要测试系统是否存在漏洞的用户,有一个 src/poc.c 文件可以简单地触发该漏洞。它假设系统上 NVMe-oF-TCP 的 IP/端口为标准配置。如果你的配置不是默认的,应该进行调整:

root@kitploit:~
#define NVME_SERVER_IP      "0.0.0.0"   // ip of vulnerable host in LAN (localhost here).
#define NVME_SERVER_PORT    4420        // port on which NVMe-oF-TCP is set up on vulnerable host

编译并使用以下命令运行:

root@kitploit:~
make build/poc
./build/poc

只需运行它(可能需要多次),然后等待片刻。如果存在漏洞,系统将会崩溃。

Writeup

完整文章见 此处

下载工具