Я давний системный администратор Linux, но новичок в CentOS. Мне просто нужно определить, уязвим ли этот сервер CentOS для CVE-2019-18348. Для этого мне нужно либо проверить, что установленные пакеты исправлены, либо найти способ проверить уязвимость на машине.
Я не нашел надежного способа проверить уязвимость, поэтому мне остается смотреть версии пакетов, журналы изменений и т. Д.
Во-первых, некоторые подробности об уязвимости:
CVE-2019-18348: проблема была обнаружена в urllib2 в Python 2.x–2.7.17 и urllib в Python 3.x– 3.8.0. Внедрение CRLF возможно, если злоумышленник управляет параметром url, как демонстрирует первый аргумент urllib.request.urlopen с \ r \ n (в частности, в компоненте хоста URL-адреса), за которым следует 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. Хотя if, возможно, был исправлен в предыдущей версии, но я не нашел способа проверить это.
[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. У меня есть несколько подписок на 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 кажутся разными, это, похоже, не помогает мне определить, уязвим ли этот ящик.
Если кто-нибудь может предложить понимание того, уязвима ли эта система, или указать мне правильное направление, я был бы очень признателен.
Спасибо
Следуя рекомендациям по обслуживанию Red Hat, вы на правильном пути. Тот же пакет, который разрешает апстрим CVE / RHSA, будет выпущен для CentOS. Иногда это не доступно так быстро. Есть сборка для glibc-2.28-72.el8.x86_64.rpm
для CentOS 8, но пока не похоже, что он попал в репозитории.
https://koji.mbox.centos.org/koji/buildinfo?buildID=4751
Это не поможет вам, если метаданные репозитория еще не знают об CVE. Но вы можете узнать о параметрах безопасности, чтобы dnf
если вы будете использовать системы 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
Использование синтаксиса ниже, если появляется информация CVE, значит, ваша система уязвима; если нет вывода, вы соответствуете.
yum updateinfo info --cve CVE-2019-18348