"PWN" Reproduction of CVE-2023-4911

"PWN" Reproduction of CVE-2023-4911

💡 原文英文,约1700词,阅读约需6分钟。
📝

内容提要

CVE-2023-4911是glibc中的一个缓冲区溢出漏洞,可能导致特权提升。该漏洞在处理GLIBC_TUNABLES环境变量时出现,攻击者可利用此漏洞覆盖内存位置并执行任意代码。修复方法是检查输入的完整性。

🔎

延伸解读

漏洞影响范围与版本依赖

CVE-2023-4911 影响 glibc 2.34 及以上版本,主要波及 set-user-ID 和 set-group-ID 程序。文章测试环境为 Ubuntu 22.04.1 LTS 搭配 glibc 2.35-0ubuntu3.3,并指出国内多数机器 libc 版本较低,可能不受影响。读者需注意,漏洞利用依赖于特定版本,升级或降级 glibc 会改变可利用性。

利用链的关键步骤与难点

利用需构造恶意 GLIBC_TUNABLES 环境变量触发缓冲区溢出,覆盖 link_map 中的 l_info[DT_RPATH] 指针,使其指向栈上可控数据,进而让 ld.so 信任攻击者放置的恶意 libc.so.6。难点在于绕过 ASLR:栈地址随机化范围约 16GB,而可控环境变量区域仅约 6MB,命中概率约 1/2730,因此需要暴力破解或调试时手动设置指针。

修复与缓解措施

官方修复方案是在解析 GLIBC_TUNABLES 时检查输入完整性,确保字符串以空字符结尾,防止越界写入。对于无法立即升级的系统,可考虑限制 setuid 程序的使用或通过安全模块进行防护。文章提到,漏洞公开时 Ubuntu 已发布 glibc 2.35-0ubuntu3.4 修复版本,并移除了有漏洞的 2.35-0ubuntu3.3,用户应尽快更新。

❓

Q&A

CVE-2023-4911是什么漏洞?

CVE-2023-4911是glibc中的一个缓冲区溢出漏洞,可能导致特权提升。

CVE-2023-4911是如何被利用的?

攻击者可以通过精心构造的有效载荷覆盖内存位置,从而执行任意代码。

如何修复CVE-2023-4911漏洞?

修复方法是检查输入的完整性,确保输入数据的正确性。

CVE-2023-4911影响哪些glibc版本?

该漏洞在glibc 2.34版本中引入,主要影响set-user-ID和set-group-ID程序的执行。

GLIBC_TUNABLES环境变量与CVE-2023-4911有什么关系?

该漏洞在处理GLIBC_TUNABLES环境变量时出现,导致缓冲区溢出。

攻击者如何构造有效载荷来利用CVE-2023-4911?

攻击者需要精心设计有效载荷,以重定向程序执行流并执行任意代码。

🏷️

标签

➡️

继续阅读