私は長年のLinuxシステム管理者ですが、CentOSは初めてです。このCentOSサーバーがCVE-2019-18348に対して脆弱かどうかを判断する必要があります。そのためには、インストールされているパッケージにパッチが適用されていることを確認するか、マシンの脆弱性をテストする方法を持っている必要があります。
脆弱性をテストするための信頼できる方法を見つけられなかったため、パッケージのバージョン、変更ログなどを見ていました。
最初に、脆弱性についての詳細:
CVE-2019-18348:Python 2.xから2.7.17までのurllib2およびPython 3.xから3.8.0までの。攻撃者がURLパラメータを制御している場合、CRLFインジェクションが可能です。これは、urllib.request.urlopenの最初の引数が\ r\n(特にURLのHostコンポーネント内)とそれに続くHTTPヘッダーで示されているためです。これは、 CVE-2019-9740クエリ文字列の問題とCVE-2019-9947パス文字列の問題。
GlibcでCVE-2016-10739が修正されている場合、これは悪用できません
ここに私のシステムのバージョンの詳細があります:
システムは完全に更新されていますが、セキュリティやバックポートリポジトリが有効になっていないようです。 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:351
しかし、このマシンはcentosであり、バージョン2.28-42.el8.1であり、RHとCentOSの間のパッチバージョンが異なるように見えるため、このボックスが脆弱であるかどうかを判断するのに役立ちません。
このシステムが脆弱であるかどうかについて洞察を提供できるか、正しい方向に私を向けることができれば、私は本当にそれを感謝します。
ありがとう
Red Hat Service Advisoryに従って、順調に進んでいます。 CVE/RHSAアップストリームを解決する同じパッケージがCentOS用にリリースされます。時にはそれはすぐには利用できません。 CentOS 8用のglibc-2.28-72.el8.x86_64.rpm
用のビルドがありますが、まだリポジトリに組み込まれていないようです。
https://koji.mbox.centos.org/koji/buildinfo?buildID=4751
リポジトリメタデータがまだCVEを認識していない場合は役に立ちません。ただし、CentOSシステムを実行する場合は、dnf
のセキュリティオプションに慣れることをお勧めします。
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
以下の構文を使用して、CVE情報が表示された場合、システムは脆弱です。出力がない場合は準拠しています。
yum updateinfo info --cve CVE-2019-18348