高端的二进制0day挖掘,往往只需要从1day的分析开始

💡 原文中文,约24300字,阅读约需58分钟。
📝

内容提要

本文介绍了sudo中的堆溢出漏洞,可实现本地提权。漏洞影响范围广泛,从1.8.2到1.8.31p2的所有旧版本和从1.9.0到1.9.5p1的所有稳定版本都受影响。文章还提供了漏洞复现和修改sudo源码的方法。

🎯

关键要点

  • 本文介绍了sudo中的堆溢出漏洞,能够实现本地提权。
  • 漏洞影响范围广泛,包括1.8.2到1.8.31p2的所有旧版本和1.9.0到1.9.5p1的所有稳定版本。
  • 该漏洞在macOS、AIX和Solaris等平台上也存在,可能影响其他平台。
  • Qualys团队发现该漏洞并验证,能够在多个Linux发行版上获得root权限。
  • 漏洞分析显示,set_cmnd函数中的内存分配和复制过程存在问题,导致堆溢出。
  • 漏洞复现需要编译特定版本的sudo,并进行源码修改以便进行模糊测试。
  • 通过AFL工具进行模糊测试,成功复现了堆溢出漏洞。
  • 结论指出,漏洞复现的难点在于修改源码而不影响核心逻辑。

延伸问答

sudo中的堆溢出漏洞是如何影响系统安全的?

该漏洞允许任何非特权用户在易受攻击的主机上获得root权限,从而实现本地提权。

哪些版本的sudo受到堆溢出漏洞的影响?

受影响的版本包括1.8.2到1.8.31p2的所有旧版本和1.9.0到1.9.5p1的所有稳定版本。

如何复现sudo中的堆溢出漏洞?

复现该漏洞需要编译特定版本的sudo,并进行源码修改以便进行模糊测试,使用AFL工具进行测试。

Qualys团队是如何发现sudo中的堆溢出漏洞的?

Qualys团队通过分析sudo的源码,发现了set_cmnd函数中的内存分配和复制过程存在问题,导致堆溢出。

堆溢出漏洞的根本原因是什么?

根本原因在于set_cmnd函数中的内存分配和复制过程存在缺陷,导致在特定条件下发生堆溢出。

该漏洞在不同平台上的影响如何?

该漏洞不仅影响Linux,还可能在macOS、AIX和Solaris等平台上存在,其他平台也可能同样脆弱。

➡️

继续阅读