IT资讯 Glibc 安全补丁引起更严重的漏洞

whitfield · 2021-08-20 10:00:07 · 热度: 19

6 月初,被广泛使用的 GNU C Library (glibc) 发布补丁修复了一个相对较小的安全漏洞(CVE-2021-33574)。修复安全问题本应是一件好事,但不幸的是,这个安全补丁引入了一个新的且更严重的漏洞(CVE-2021-38604)。

红帽软件工程师 Siddhesh Poyarekar 表示,如果攻击者想利用最初的安全漏洞来发起最小的攻击,他需要许多先决条件才可以利用漏洞来使程序崩溃。尽管如此,既然发现了安全漏洞就需要被解决。

Glibc 安全补丁引起更严重的漏洞

然而 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 (&notify_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 或更高的稳定版本。

猜你喜欢:
暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册