Glibc 安全補丁引起更嚴重的漏洞
6 月初,被廣泛使用的 GNU C Library (glibc) 發布補丁修復了一個相對較小的安全漏洞(CVE-2021-33574)。修復安全問題本應是一件好事,但不幸的是,這個安全補丁引入了一個新的且更嚴重的漏洞(CVE-2021-38604)。
紅帽軟件工程師 Siddhesh Poyarekar 表示,如果攻擊者想利用最初的安全漏洞來發起最小的攻擊,他需要許多先決條件才可以利用漏洞來使程序崩潰。盡管如此,既然發現了安全漏洞就需要被解決。
然而 glibc 在打上修復此安全漏洞的補丁后,引起了更嚴重且更容易被利用的漏洞。在檢查補丁時,來自 CloudLinux TuxCare 團隊的 Nikita Popov 發現了問題,新的漏洞有可能導致在庫內出現觸發段錯誤 (segmentation fault) 的情況,從而導致任何使用 glibc 庫的程序崩潰,產生拒絕服務 (DoS) 問題。更重要的是,這個漏洞比舊的漏洞更容易觸發。
紅帽在其通用漏洞評分系統 (CVSS) 中給這個漏洞打了 7.5 分,此分數已經屬于“高分”,意味著使用該漏洞的攻擊很容易構建并且不需要特權。
此漏洞因上游的修復補丁而被引入,尤其是 mq_notify.c 文件:
- @@ -133,8 +133,11 @@ helper_thread (void *arg)
- (void) __pthread_barrier_wait (¬ify_barrier);
- }
- else if (data.raw[NOTIFY_COOKIE_LEN - 1] == NOTIFY_REMOVED)
- - /* The only state we keep is the copy of the thread attributes. */
- - free (data.attr);
- + {
- + /* The only state we keep is the copy of the thread attributes. */
- + pthread_attr_destroy (data.attr);
- + free (data.attr);
- + }
Nikita Popov 在執行“將 CVE-2021-33574 的安全補丁移植到所支持的發行版的常規程序”時發現了這個問題,他發現在某些情況下可以傳遞空指針。
Nikita Popov 認為,glibc 提供了主要的系統原語 (system primitives),并與大多數其他 Linux 應用程序相關聯,包括其他語言編譯器和解釋器。它是系統中僅次于內核的第二個最重要的組件,所以 glibc 如果出現問題會造成非常大的影響。
目前關于此漏洞 (CVE-2021-38604),以及針對它的修復補丁已經提交給 glibc 開發團隊,并已整合至 glibc 庫。此外,一個新的測試已經提交至 glibc 的自動測試套件,以發現這種情況并防止它在未來再次發生。glibc 開發團隊建議使用者升級到最新的 glibc 2.34 或更高的穩定版本。
本文轉自OSCHINA
本文標題:Glibc 安全補丁引起更嚴重的漏洞
本文地址:https://www.oschina.net/news/156382/glibc-security-fix-created-a-nastier-linux-bug