Удалённая root-уязвимость в DHCP-клиенте из состава RHEL и Fedora

В скрипте интеграции с NetworkManager, входящем в состав пакета dhcp-client, предлагаемого в Red Hat Enterprise Linux и Fedora, выявлена критическая уязвимость (CVE-2018-1111), которая позволяет удалённо выполнить код с правами root. Проблема может быть эксплуатирована при обработке специально оформленного DHCP-ответа в системах c NetworkManager, настроенных на получение конфигурации сети через протокол DHCP. Проблеме присвоен наивысший уровень опасности.

Для атаки злоумышленникам необходимо разместить в локальной сети собственный DHCP-сервер, получить контроль за штатным DHCP-сервером или выполнить спуфинг отправляемых клиенту DHCP-пакетов. Пользователь также может быть атакован при попытке подключения к незаслуживающей полного доверия беспроводной сети. Уязвимость присутствует в скрипте /etc/NetworkManager/dispatcher.d/11-dhclient (или 10-dhclient в RHEL 6), который вызывается при получении каждого ответа от DHCP-сервера. Через манипуляции с содержимым ответа можно выполнить с любую shell-команду с правами NetworkManager (root).

Наличие проблемы подтверждено в RHEL 6/7 и Fedora, для которых уже выпущены экстренные обновления (в Fedora исправления включены в пакеты dhcp-4.3.5-11.fc26, dhcp-4.3.6-10.fc27, dhcp-4.3.6-20.fc28 и dhcp-4.3.6-21.fc29). Другие дистрибутивы проблема не затрагивает, за исключением продуктов, производных от RHEL и Fedora. Патч сводится к замене «read opt» на «read -r opt», т.е. отключению возможности экранирования спецсимволов с использованием обратного слэша.

Код с уязвимостью:

   eval "$(
   declare | LC_ALL=C grep '^DHCP4_[A-Z_]*=' | while read opt; do
       optname=${opt%%=*}
       optname=${optname,,}
       optname=new_${optname#dhcp4_}
       optvalue=${opt#*=}
       echo "export $optname=$optvalue"
   done
   )"

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.