高端的二进制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等平台上存在,其他平台也可能同样脆弱。
➡️