CVE-2019-19726 OpenBSD 动态加载器本地特权升级漏洞

💡 原文英文,约1000词,阅读约需4分钟。
📝

内容提要

OpenBSD动态加载器中的本地特权升级漏洞CVE-2019-19726允许攻击者通过操纵LD_LIBRARY_PATH环境变量来提升权限。该漏洞已被提名为2020 Pwnie奖。文章分析了漏洞并演示了测试代码。还讨论了SUID-root程序中LD_LIBRARY_PATH环境变量的处理方式,并解释了漏洞的利用方法。

🎯

关键要点

  • CVE-2019-19726 是 OpenBSD 动态加载器中的本地提权漏洞,允许攻击者通过操纵 LD_LIBRARY_PATH 环境变量来提升权限。
  • 该漏洞由 Qualys Research Team 发现,并获得 2020 年 Pwnie Awards 提名。
  • 漏洞分析部分介绍了 setrlimit 和 RLIMIT_DATA 的概念,说明了进程如何限制自身的资源使用上限。
  • 对于 SUID-root 程序,链接器需要去除危险的环境变量,以防止通过环境变量实现提权。
  • 漏洞利用部分描述了如何通过 /usr/bin/chpass 程序实现提权,强调了 LD_LIBRARY_PATH 在特定情况下不会被清理。
  • 总结指出,只有极少数满足条件的 SUID-root 程序才能利用此提权漏洞。

延伸问答

CVE-2019-19726 漏洞是如何被发现的?

该漏洞由 Qualys Research Team 发现,并获得 2020 年 Pwnie Awards 提名。

CVE-2019-19726 漏洞的利用方法是什么?

攻击者通过操纵 LD_LIBRARY_PATH 环境变量,利用 /usr/bin/chpass 程序实现提权。

LD_LIBRARY_PATH 环境变量在 SUID-root 程序中是如何处理的?

链接器需要去除危险的环境变量,以防止通过环境变量实现提权。

CVE-2019-19726 漏洞的核心问题是什么?

漏洞在于动态加载器清理 LD_LIBRARY_PATH 环境变量时的缺陷,导致权限提升。

该漏洞对系统安全有什么影响?

该漏洞允许攻击者提升权限,可能导致系统安全性降低。

如何修复 CVE-2019-19726 漏洞?

漏洞补丁可参考 libexec/ld.so/loader.c 文件。

➡️

继续阅读