查看原文
其他

Linux glibc 库的修复方案扯出更严重的新漏洞

代码卫士 2022-05-23

 聚焦源代码安全,网罗国内外最新资讯!

作者:Steven J. Vaughan-Nichols

编译:代码卫士


GNC C Library (glibc) 库对 Linux 至关重要。因此当它出问题时就是大问题。6月初 Linux曾修复了一个严重程度相对较低的漏洞 (CVE-201-33574),可导致应用程序崩溃。遗憾的是,该修复方案还引入了一个新的且更严重的漏洞 CVE-2021-38604。


CVE-2021-33574 并没有那么严重。就像Red Hat 首席软件工程师 Siddhesh Poyarekar 写的那样,“要利用该缺陷发动最小的攻击,攻击者也需要很多前提条件才能利用该 mq_notify bug 使程序崩溃。”不过,我们仍然需要打补丁修复。但没想到的是,修复方案中竟然包含一个更加严重的 bug。

CloudLinux TuxCare 团队的成员 Nikita Popov在检查补丁时发现了该漏洞,它可导致libc 库内触发分段错误,导致拒绝服务攻击。和CVE-2021-33574不同,该漏洞更易于被触发。

Red Hat 对CVE-2021-38604的CVSS 评分是7.5,属于高危漏洞。利用该漏洞可轻松构建攻击且无需权限即可实施。Popov 表示,“每款包含其它语言解释器(python、PHP)的 Linux 应用程序都和 glibc 有关,它是继内核本身的第二大重要事情,因此影响非常大。”Popov 在“例行将 CVE-2021-33574 修复方案推到受支持的发行版本”时发现了这个问题,他发现在某些情况下可疑传递空指针。

从技术上来讲,问题出在 “mq_” 函数家族中,它们提供 POSIX 合规消息队列应用编程接口 (API) 功能。一般而言,它们用于进程间通信 (IPC) 过程。所有包含其它语言 (Python、PHP) 解释器的 Linux 应用程序都和 glibc 库相关联。

Popov 发现“在两种情况下,Linux Kernel 在data.attr 字段中传递复制的线程属性时会使用 NOTIFY_REMOVED 消息。遗憾的是,主机应用程序能够传递一个 NULL 值,如果它想要 glibc 通过默认属性拥堵线程。在这种情况下,glibc 库将解引用 pthread_attr_destory 中的一个空指针,从而导致整个进程崩溃。”

C 语言程序员或许已经对此闭眼摇头了,因为C语言编程的一个常用规则就是永远不要解引用 null 指针。问题并非“它会导致程序崩溃吗?“,而是”它会使程序崩溃到什么程度?“

好在这个漏洞和代码修复方案已经提交给 glibc 库的开发团队,并且已经集成到上游 glibc 库。另外,已向 glibc 库的自动化测试套件提交了新测试以补救该场景,阻止未来再次发生类似漏洞。底线是,有时对不相关代码路径的更改可导致其它地方发生变化,而程序员并不清楚发生了什么事情。该测试就是要捕获到这种情况。

Linux 发行商仍然在寻求部署该修复方案的最佳方式。同时,用户应升级至最新的稳定版 glibc 2.34或更高版本。






推荐阅读
Linux OS 曝新漏洞 攻击者可在多数发行版获root 权限
可蠕虫 DarkRadiation 勒索软件瞄准 Linux 和 Docker 实例
康奈尔大学研究员发现“代码投毒”攻击,可触发供应链攻击
Linux 应用市场易受RCE和供应链攻击,多个0day未修复




原文链接

https://www.zdnet.com/article/linux-glibc-security-fix-created-a-nastier-linux-bug/


题图:Pixabay License



本文由奇安信编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。




奇安信代码卫士 (codesafe)

国内首个专注于软件开发安全的产品线。

    觉得不错,就点个 “在看” 或 "赞” 吧~



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存