我被告知我的 Docker 镜像之一存在“Docker 安全问题 CVE-2017-12424”,并表示其软件包影子版本之一是“1:4.4-4.1”。而且我需要升级。但我只能看到 Debian 软件包的版本 1:4.4-4.1:
$ dpkg -l | grep 1:4.4-4.1
ii login 1:4.4-4.1 amd64 system login tools
ii passwd 1:4.4-4.1 amd64 change and administer password and group data
我找到了影子 github 仓库https://github.com/shadow-maint/shadow,但我没有找到任何相关文档。
请您帮助我,告诉我如何检查shadow的软件包版本,以及如何在Debian环境中升级它。
答案1
从包版本号,它看起来像 Debian 9(“stretch”),这是oldstable
自 2019-07-06 以来的版本。也许是时候考虑更新 Docker 映像以使用更新的稳定版本了?
CVE-2017-12424 似乎与软件包/usr/sbin/newusers
中的工具有关passwd
。如果您的 Docker 映像中不需要该特定工具,也许可以使用一个.dockerignore
文件来完全省略它,作为解决方法?
shadow
是构建多个实用程序的源代码包:Debian 将实用程序打包成三个单独的包。在这种情况下,存在漏洞的实用程序位于passwd
软件包中,需要对其进行升级;然而,Debian 9 目前似乎没有可用的更新版本的软件包。只有 Debian 10(“buster”,新stable
版本)及更高版本有可用的修复版本。
从 Debian 10升级到passwd
软件包而不升级映像的其余部分以匹配可能会导致库依赖性错误。此时,将整个基础映像从 Debian 9 升级到 Debian 10 可能是一项不错的时间投资。
passwd
但如果您想要一个与其他 Debian 9 软件包兼容的固定版本软件包现在,你可能必须下载shadow 4.5-1.1的Debian源码包到安装了编译器和其他构建工具的 Debian 9 系统,并dpkg-buildpackage
在源代码上运行 a 以获取passwd
针对 Debian 9 库编译的较新版本的软件包。将此自定义软件包注入到您的 Docker 映像构建过程中将是你的任务。
(作为构建的副作用,您还将获得更新版本的软件包login
和uidmap
:但是,只要这些软件包的标准 Debian 9 版本没有任何已知的易受攻击的内容,您就可以选择忽略它们。)
请注意,CVE-2017-12424 仅适用于您的系统允许非特权用户newusers
在特权上下文中运行命令的情况,例如 Web 托管环境中的控制面板或/etc/sudoers
允许非 root 用户运行命令的条目。以 root 身份运行newusers
。这可能就是修复版本尚未传播到 Debian 9 的原因:安全团队并不认为这是一个高优先级问题。