February 23rd, 2016

terminator
  • craftwr

пара дыр (заделано)

Во входящем в состав ядра Linux модуле snd-usbmidi-lib

[чо смотришь? открывай!]

выявлена уязвимость (CVE-2016-2384), позволяющая организовать выполнение кода с правами ядра при наличии у атакующего физического доступа к системе.

Для атаки необходимо подключить к компьютеру специально настроенное USB-устройство, передающее некорректный блок параметров USB, а также запустить в системе определённый код под непривилегированным пользователем. Без наличия возможности выполнения кода на локальной системе уязвимость позволяет только инициировать отказ в обслуживании (крах ядра).

Уязвимость затрагивает пакеты с ядром, поставляемые в большинстве дистрибутивов Linux, включая Red Hat Enterprise Linux 6/7, Ubuntu, Debian, Fedora и SUSE. Проблема уже исправлена в ядре 4.5-rc4. В качестве обходного метода защиты можно отключить сборку модуля usb-audio (CONFIG_SND_USB_AUDIO=n) или запретить его автоматическую загрузку («echo blacklist snd-usb-audio >> /etc/modprobe.d/blacklist.conf»). Доступен рабочий прототип эксплоита, который успешно работает в Ubuntu 14.04 (3.19.0-49-generic), Linux Mint 17.3 (3.19.0-32-generic) и Fedora 22 (4.1.5-200.fe22.x86_64).

Исследователи безопасности из компаний Google и Red Hat выявили опасную уязвимость (СVE-2015-7547) в системной библиотеке Glibc. Уязвимость проявляется при вызове приложениями функции getaddrinfo() и может привести к выполнению кода в системе в случае возврата DNS-сервером специально оформленного ответа, который может быть сформирован злоумышленником в результате MITM-атаки, при получении контроля над DNS-сервером, отвечающим за отдачу запрошенной DNS-зоны, или при обращении к домену, за обработку которого отвечает DNS-сервер атакующих. Таким образом, для совершения успешной атаки злоумышленникам достаточно подтолкнуть пользователя обратиться к подконтрольному им доменному имени из любой программы, в которой применяется вызов getaddrinfo().

Проблема вызвана переполнением буфера в NSS-модуле nss_dns, которое присутствует в обработчиках запросов как по UDP (send_dg), так и по TCP (send_vc). Уязвимость проявляется при вызове функции getaddrinfo в режимах AF_UNSPEC или AF_INET6, использование которых приводит к одновременной отправке двух запросов для получения данных для типов записей A (IPv4) и AAAA (IPv6). Суть проблемы в том, что буфер для сохранения результата создаётся ненадлежащего размера и хвост ответа записывается в область стека за пределом буфера (в буфер 2048 может придти до 65535 байт данных). Для демонстрации уязвимости подготовлен рабочий прототип эксплоита.

Проблема присутствует с мая 2008 года, начиная с выпуска glibc 2.9. Инженеры Google обратили внимание на уязвимость столкнувшись с повторяющимся крахом клиента SSH при попытке обращения к одному из хостов. В процессе разбора уязвимости инженеры Google с удивлением обнаружили, что информация об уязвимости уже сообщалась разработчикам Glibc людьми столкнувшимися с похожими проблемами и находится в системе отслеживания ошибок Glibc с 13 июля 2015 года. Написав о проблеме сопровождающим Glibc, исследователи узнали, что два сотрудника Red Hat тоже обратили внимание на данную ошибку и занимаются её анализом.

Исправление пока доступно в виде патча. Обновления с устранением уязвимости пока выпущены только для RHEL 6/7 и Debian (eglibc, glibc). Оценить появление обновлений в других дистрибутивах можно на следующих страницах: Ubuntu, Fedora,openSUSE, SLES, Slackware, Gentoo, CentOS. В качестве обходных мер защиты рекомендуется ограничить на межсетевом экране максимальный размер DNS-ответов значением в 512 байт для UDP и 1024 байт для TCP.