CVE-2023-4039 是否影响现有二进制文件?

问题描述 投票:0回答:1

我们的安全扫描器报告 Docker 映像容易受到 CVE-2023-4039 的攻击:

针对 AArch64 的基于 GCC 的工具链中的

-fstack-protector
功能出现故障,攻击者可以利用应用程序中动态大小的局部变量中的现有缓冲区溢出漏洞,而不会被检测到。此堆栈保护器故障仅适用于 C99 样式动态大小的局部变量或使用
alloca()
...

创建的变量

OpenSuse 声称此漏洞已修补,但我不明白这是怎么回事。如果漏洞存在于编译器的代码生成中,是不是意味着使用该编译器创建的所有二进制文件都容易受到攻击?

编译器的修复如何修复现有的二进制文件?我不认为

alloca
创建对共享对象文件的调用...

我们的映像没有安装 gcc,修补映像是否需要/有帮助吗?

gcc patch opensuse cve
1个回答
0
投票

我并不是说情况确实如此,但我会解释这是怎么回事,因为我在 Ubuntu 中多次看到过这种情况。有时 Canonical(制作 Ubuntu 的公司)不会等待上游补丁。为了表示他们会在版本中添加后缀。例如,“bash 5.1-6”将变为“bash 5.1-6ubuntu1”。我们的漏洞扫描器会发现该版本未修补,因为它仍然是5.1-6,并报告该漏洞,因为它不熟悉 Canonicals 表示法。我会检查容器中的版本是否与易受攻击的版本不同。

在 Suse 上方链接的底部公告中,说明了他们采取了哪些措施来缓解该问题,并且更新的库的版本号看起来像是在不等待上游的情况下进行了修补。

由于您没有指定您的基础镜像是什么特定容器,所以我无法显示具体版本,但例如在“

SUSE Linux Enterprise Micro for Rancher 5.2”中(任意选择,因为它是最后一个)GCC 的版本和公司。是:

    libstdc++6-13.2.1+git7813-150000.1.3.3
  • libgcc_s1-debuginfo-13.2.1+git7813-150000.1.3.3
  • libstdc++6-debuginfo-13.2.1+git7813-150000.1.3.3
  • libgcc_s1-13.2.1+git7813-150000.1.3.3
这些版本看起来是由下游 (Suse) 而不是上游 (GNU) 修补的,因为

GNU 使用常规的三部分版本命名法。

对于使用易受攻击的编译器编译的任何内容,这些都是来自不同包的不同二进制文件,需要重新编译。

© www.soinside.com 2019 - 2024. All rights reserved.