这是一个(目前还非常粗糙的)CVE-2023-4911概念验证。到目前为止,我只验证了它在 Ubuntu 22.10 kinetic 上可以工作。当前版本的漏洞利用包含相当多的“魔法”偏移量。如果你对如何改进堆布局有建议, 欢迎向我的仓库提交 PR :)。
该漏洞利用基本上是 Qualys 的优秀分析文章 的实现。在某些地方有所偏离。 这不一定是因为我认为自己更懂,只是在我的虚拟机上这样做是可行的。可能还有改进的空间。
make 编译漏洞利用程序和 suid 库。suid_lib.so 和 exploit 的可写目录运行 ./exploit。它会在当前目录下创建一个名为 U 的文件夹,
并用必要的库填充该文件夹。在我有限的测试中,漏洞利用需要大约 4000-8000 次尝试。堆喷射的效果不如 Qualys 的实现那么好,所以需要稍微长一点的时间。
这是漏洞利用运行时的示例(加速播放):https://youtu.be/uw0EJ5zGEKE
如果你想在此基础上进行开发,这里有一些入门想法: