У меня есть две коробки CentOS 5.10, которые я обновил bash
до последней версии. Однако в одном из ящиков bash
все еще уязвим для CVE-2014-7169
(Я использую тест от этот ответ ServerFault).
Есть идеи, почему одна машина в порядке, а другая нет? Что я могу проверить?
Что я уже проверил:
1- Убедитесь, что обе машины работают под одной и той же ОС (одинаковый вывод на обоих):
# cat /etc/redhat-release
CentOS release 5.10 (Final)
2- Убедитесь, что у меня такая же версия bash
(одинаковый вывод на обоих):
# rpm -qi bash
Name : bash Relocations: (not relocatable)
Version : 3.2 Vendor: CentOS
Release : 33.el5_10.4 Build Date: Thu 25 Sep 2014 08:58:19 PM UTC
Install Date: Sat 27 Sep 2014 02:07:07 PM UTC Build Host: sclbuild-c5.centos.org
Group : System Environment/Shells Source RPM: bash-3.2-33.el5_10.4.src.rpm
Size : 5235475 License: GPLv2+
Signature : DSA/SHA1, Fri 26 Sep 2014 02:11:39 AM UTC, Key ID a8a447dce8562897
3- Дважды проверьте, что двоичный файл в порядке с подписью (одинаковый вывод на обоих):
# rpm -V bash
(эта команда не выводила данные, указывающие на извлеченные двоичные подписи)
4- Убедитесь, что двоичные файлы на самом деле имеют одинаковые версии (как было предложено Сайрусом в комментариях): (одинаковый вывод на обеих машинах)
# rpm -qf /bin/bash
bash-3.2-33.el5_10.4
5- Проверьте размер двоичных файлов
# ls -l /bin/bash (Good machine)
-rwxr-xr-x 1 root root 801816 Sep 25 20:55 /bin/bash
# ls -l /bin/bash (Bad/vulnerable machine)
-rwxr-xr-x 1 root root 768952 Sep 25 20:55 /bin/bash
Обратите внимание, что размеры файлов разные.
6- Собственно тест на уязвимость
# ## on the good machine
# env X='() { (a)=>\' sh -c "echo date"; cat echo
date
cat: echo: No such file or directory
# ## on the bad/vulnerable machine
# env X='() { (a)=>\' sh -c "echo date"; cat echo
date
Sat Sep 27 13:44:36 UTC 2014
Может быть ложное срабатывание. Убедитесь, что файл «эхо» не существует после более раннего теста на вашем неисправном компьютере, затем повторите попытку.
В противном случае также может быть ложноотрицательный результат - проверьте, можете ли вы прикоснуться к файлу на своем исправном компьютере, затем повторите попытку.