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