当上传到码头图像存储库时,我有一个坞基映像,给出了漏洞pyup.io-43366 (CVE-2021-43818)。
基本图像是
FROM quay/registry.redhat.io/rhel7:latest
MAINTAINER Me
LABEL description="Application runtime image" \
name="Image name" \
version="1.0"
ENV LANG en_US.UTF-8
RUN yum-config-manager \
&& yum -y install java-11-openjdk \
&& yum -y clean all
CMD ["/bin/bash"]有什么办法可以克服这个弱点吗?
发布于 2022-04-19 22:36:49
Red提供了描述该问题如何影响不同产品版本的这一信息。
如上述链接所述,似乎没有提供任何缓解措施:
对于此问题的缓解措施要么不可用,要么目前可用的选项不符合红帽产品安全标准,包括易用性和部署性、对广泛安装基地的适用性或稳定性。
在7的具体用例中,它们表明该产品“超出了支持范围”:
当一个产品被列为“支持范围之外”时,它意味着分配给该产品的影响级别的漏洞不再包含在其当前的支持生命周期阶段中。产品已被识别为包含受影响的组件,但未进行分析以确定其是否受到此漏洞的影响。应假定产品受到影响。建议客户应用此页面中记录的任何缓解选项,考虑删除或禁用受影响组件,或升级到具有可更新的产品的受支持版本。
这也许可以解释,正如VonC在他的问题中所指出的,为什么Grype没有报告这个问题。
如果您只需要您的映像来运行Java,您可以尝试的一件事是删除依赖项,但恐怕其他库都需要它,所以它可能无法工作。
请仔细听我的话,因为这完全取决于您的实际用例,但是您也可以“安全地”使用您的图像。再次引用的文档:
此漏洞被评为中度缺陷,因为代码执行仅限于web浏览器范围。
事实上,Red本身也为相似图像提供了同样的问题。
最后,如果使用Red不是一个严格的要求,您可以选择另一个不同的OpenJDK或AdoptOpenJDK发行版。例如:
docker pull openjdk:11.0.14.1-jdk发布于 2022-04-18 13:41:07
“停止使用
latest”--“我该给什么标签?”
首先,您可以使用来自rhel7的项目 ( sudo-bmitch,top 堆栈溢出的贡献者)列出标记,如下:
alias dr='docker run -it --rm'
# on Windows
dockey dr=docker run -it --rm $*
dr regclient/regctl:latest tag ls registry.access.redhat.com/rhel7|\
grep -Ev (source|[0-9][0-9][0-9][0-9])(在Windows:grep -Ev (source^|[0-9][0-9][0-9][0-9])上:注意^)
第二,我没有看到最新的CVE-2021-43818,使用锚泊/锚式
docker run anchore/grype:latest registry.access.redhat.com/rhel7:latest | grep 2021最近的是CVE-2021-3541,在libxml2-python中发现了一个缺陷。
在您的示例中,考虑到Lxml 4.6.5包含一个用于CVE-2021-43818的修复程序,您将需要一个带有Lxml 4.6.5+的映像。
如果该映像还不存在,您可以docker build自己的启动FROM registry.access.redhat.com/rhel7:7.9,并添加正确的libxml。
并将其发布给码头。
https://stackoverflow.com/questions/71882318
复制相似问题