我是一名资深的 Linux 系统管理员,但对 CentOS 还不熟悉。我只需要确定此 CentOS 服务器是否容易受到CVE-2019-18348。要做到这一点,我必须验证安装的软件包是否已修补,或者有办法测试机器上的漏洞。
我还没有找到任何可靠的方法来测试漏洞,所以我只能查看软件包版本、更改日志等。
首先,关于该漏洞的一些细节:
CVE-2019-18348:在 Python 2.x 到 2.7.17 的 urllib2 和 Python 3.x 到 3.8.0 的 urllib 中发现了一个问题。如果攻击者控制 url 参数,则可能出现 CRLF 注入,urllib.request.urlopen 的第一个参数带有 \r\n(具体在 URL 的主机组件中),后跟 HTTP 标头。这类似于 CVE-2019-9740 查询字符串问题和 CVE-2019-9947 路径字符串问题。
当 glibc 修复了 CVE-2016-10739 后,该漏洞将无法利用
以下是我的系统的版本详细信息:
- centos-发布-8.0-0.1905.0.9.el8.x86_64
- python36.x86_64 (3.6.8-2.module_el8.0.0+33+0a10c0e1)
- glibc 2.28-42.el8.1
系统已完全更新,但我没有看到启用任何安全或反向移植存储库。我找不到有关是否有适用于 centos 的安全更新存储库以及如何启用它的任何信息。
[root@host]# yum repolist
Last metadata expiration check: 1:37:46 ago on Fri 06 Dec 2019 07:51:08 PM UTC.
repo id repo name status
AppStream CentOS-8 - AppStream 5,089
BaseOS CentOS-8 - Base 2,843
*epel Extra Packages for Enterprise Linux 8 - x86_64 3,579
extras CentOS-8 - Extras
glibc 的更新日志没有具体列出 CVE-2019-18348。虽然它可能在之前的版本中已经修复,但我还没有找到任何方法来检查这一点。
[root@host]# rpm -q --changelog glibc | grep -i cve
- Add upstream test case for CVE-2018-19591 (#1654010)
- CVE-2018-19591: File descriptor leak in if_nametoindex (#1654010)
- CVE-2018-11237: Buffer overflow in __mempcpy_avx512_no_vzeroupper (#1581275)
- CVE-2018-11236: realpath: Fix path length overflow (#1581270, swbz#22786)
- CVE-2017-18269: memory corruption in i386 memmove (#1580934)
- CVE-2017-14062, CVE-2016-6261, CVE-2016-6263:
- CVE-2018-1000001: Make getcwd fail if it cannot obtain an absolute path
- CVE-2017-16997: elf: Check for empty tokens before DST expansion (#1526866)
- CVE-2017-1000409: Count in expanded path in _dl_init_path (#1524867)
- CVE-2017-1000408: Compute correct array size in _dl_init_paths (#1524867)
- CVE-2017-17426: malloc: Fix integer overflow in tcache (swbz#22375)
- CVE-2017-15804: glob: Fix buffer overflow during GLOB_TILDE unescaping
- CVE-2017-15670: glob: Fix one-byte overflow (#1504807)
- Use execveat syscall in fexecve (swbz#22134)
python 的变更日志没有显示任何 CVE,但有“rhbz”编号,我猜是 redhat bugzilla。我订阅了一些 RH,但显然订阅量不够,无法查看这些项目的任何详细信息。
[root@host]# rpm -q --changelog python36 | grep -i resolves
- Resolves: rhbz#1695587
- Resolves: rhbz#1658271
- Resolves: rhbz#1654867
- Resolves: rhbz#1633534
- Resolves: rhbz#1633534
- Resolves: rhbz#1633561
- Resolves: rhbz#1633534
- Resolves: rhbz#1632637
- Resolves: rhbz#1633534
- Resolves: rhbz#1615727
此 Red Had 咨询修复CVE-2016-10739在包装中glibc-2.28-72.el8.x86_64.rpm https://access.redhat.com/errata/RHSA-2019:3513
但是由于这台机器是centos并且版本为2.28-42.el8.1,并且RH和CentOS之间的补丁版本似乎不同,这似乎无法帮助我确定这个机器是否存在漏洞。
如果有人能够洞察这个系统是否存在漏洞,或者给我指明正确的方向,我将不胜感激。
谢谢
答案1
按照 Red Hat 服务公告,您走在正确的轨道上。解决 CVE/RHSA 上游问题的相同软件包将针对 CentOS 发布。有时它不会很快可用。有一个适用于glibc-2.28-72.el8.x86_64.rpm
CentOS 8 的版本,但它似乎还没有进入存储库。
https://koji.mbox.centos.org/koji/buildinfo?buildID=4751
dnf
如果存储库元数据尚未识别 CVE,那么它对您没有帮助。但是,如果您要运行 CentOS 系统,您可能需要熟悉安全选项。
DNF(8) DNF DNF(8)
NAME
dnf - DNF Command Reference
...
--cve=<cves>
Includes packages that fix a CVE (Common Vulnerabilities and Exposures) ID (http://cve.mitre.org/about/), Eg. CVE-2201-0123. Applicable for install,
repoquery, updateinfo, and upgrade command.
...
--security
Includes packages that provides a fix for security issue. Applicable for upgrade command.
前任:
dnf updateinfo list --cve=CVE-2016-10739
答案2
使用下面的语法,如果出现 CVE 信息,则表示您的系统存在漏洞;如果没有输出,则表示您符合要求。
yum updateinfo info --cve CVE-2019-18348