如何确定我的 CentOS 8 是否易受 CVE-2019-18348 攻击

如何确定我的 CentOS 8 是否易受 CVE-2019-18348 攻击

我是一名资深的 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 后,该漏洞将无法利用

https://nvd.nist.gov/vuln/detail/CVE-2019-18348

https://nvd.nist.gov/vuln/detail/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.rpmCentOS 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

相关内容