Автор: Андрей Жуков, аналитик
Место обитания:
ОС Windows, служба удалённого рабочего стола (RDP).
Об уязвимости стало широко известно 14 мая 2019 года в ежемесячный вторник обновлений от Microsoft. В свою очередь, о данной уязвимости сообщила британская служба National Cyber Security Centre. Так же есть предположения, что первые упоминания данной уязвимости приходят из даркнета ещё с сентября 2018 года, где некто продавал (и успешно продал несколько раз) очень похожий эксплойт за 500000$.
Уязвимость CVE-2019-0708, получившая название BlueKeep, пожалуй, ничуть не менее опасна, чем уязвимость в SMB двухлетней давности MS17-010 (она же EternalBlue/EternalRomance), более известная благодаря червю WannaCry, заразившему в мае 2017 года пол миллиона компьютеров в более чем 200 странах мира. Так, согласно статистике shodan, распространённость RDP в 3 раза превосходит SMB, и на данный момент в сети Интернет насчитывает порядка 4.7 млн серверов, среди которых уязвимыми могут быть около 800-900 тысяч систем.
Техническое описание:
Уязвимость возможна благодаря ошибке в драйвере удалённых рабочих столов termdd.sys и относится к классу Use-After-Free.
Протокол RDP весьма сложен (детальное описание занимает 427 страниц) и включает достаточно длительную процедуру предварительной настройки между клиентом и сервером. Так, в частности, в самом начале, после отправки клиентом запроса «X.224 Connection Request» rdp-сервис создаёт два дефолтных логических канала — «MS_T120» и «CTXTW». Однако спецификация протокола подразумевает возможность клиента запросить у сервера создание произвольного логического канала в следующем сообщении «MCS Connect Initial and GCC Create». Так, если клиент запросит явным образом создание канала «MS_T120», то после отправки им сообщения «MCS Channel Join Request», канал «MS_T120» будет создан второй раз. На самом деле канал будет один, но ссылки на него будет две. Именно тут и кроется уязвимость. После отправки данных в этот канал, rdp-сервис закроет его, однако этот же канал будет по-прежнему доступен через другой слот. Это делает возможным записать произвольные данные в область данных, которая ошибочно считается свободной.
Особенности эксплуатации:
Тот факт, что на данный момент не известно о публично доступных рабочих эксплойтах, сдерживает возможное повторение WannaCry. Однако эксплойт рано или поздно появится.
Кто подвержен:
Windows XP, 2003, Vista, 7, 2008, 2008R2
Как защититься:
Во-первых, конечно же, установить обновление. Microsoft сделали очередное исключение и выпустили патч даже для неподдерживаемых версий операционной системы Windows XP/2003.
Либо необходимо включить аутентификацию на уровне сети.
На крайний случай остается вариант полностью отказаться от RDP.
Исполнение произвольного кода в Exim CVE-2019-10149Место обитания:
Сервера исходящей почты Exim. По примерной оценке shodan, уязвимыми по-прежнему остаются около 1 млн. серверов по всему миру.
Техническое описание:
Уязвимость представляет своего рода template injection. Exim поддерживает свой язык макросов, обрабатываемый специальным парсером. Данный язык поддерживает конструкцию, которая будет интепретирована как команда операционной системы. Суть уязвимости в том, что через парсер проходит адрес получателя, который никак не экранируется и, в свою очередь, полностью контролируется пользователем. Таким образом, злоумышленник может внедрить произвольную команду операционной системы в поле адресата, которая в дальнейшем будет выполнена почтовым сервером.
Особенности эксплуатации:
Для эксплуатации требуется отправить электронное сообщение через уязвимый почтовый сервер. Данная особенность на деле является сильным ограничением, что достаточно смягчает опасность данной уязвимости. Для преодоления этого возможны следующие обстоятельства:
- почтовый сервер выполняет свободную пересылку транзитных писем, иными словами, является open relay. Но на практике таких серверов достаточно мало;
- почтовый сервер не выполняет проверку существования имени пользователя адресата.
Однако существует ещё один весьма экзотический приём. В случае отправки на любого адресата заведомо некорректного электронного письма, почтовый сервер должен вернуть письмо отправителю. При этом он поменяет местами отправителя и получателя, тем самым сделав возможным внедрение произвольных команд через адрес отправителя, который, как правило, никак не проверяется. Для возврата электронного письма уязвимый почтовый сервер выполняет подключение к почтовому серверу злоумышленника. Если почтовому серверу злоумышленника удастся растянуть процесс приёма возвращённого письма на 7 дней, продержав тем самым его в очереди уязвимого почтового сервера, то статус письма изменится на frozen. При повторной обработке очереди письма со статусом frozen будут повторно загружены, и адреса получателей пропущены через парсер, который и выполнит небезопасный макрос, содержащий произвольную команду операционной системы.
Кто подвержен:
Exim 4.87 – 4.91
Как защититься:
Обновиться до версии минимум 4.92
Чтение произвольных файлов через GraphicsMagick CVE-2019-12921
Место обитания:
Библиотека обработки изображений GraphicsMagic. Данная библиотека является ответвлением от аналогичной библиотеки ImageMagic, в которой три года назад были найдены схожие уязвимости. Так или иначе, данная библиотека может быть использована на множестве сайтов.
Техническое описание:
Уязвимость позволяет прочитать произвольный файл на сервере в момент преобразования из формата svg в jpg, gif или png путём включения его содержимого в тело картинки.
Особенности эксплуатации:
Варианта эксплуатации два — для преобразования в jpg, gif и преобразования в png.
Например, в случае, если сайт ожидает от пользователя картинку в произвольном формате, после чего она будет сконвертирована в png, то после загрузки изображения с содержимым:
сервер преобразует его в формат png, где будет буквально нарисовано содержимое данного файла:
Кто подвержен:
Версии библиотеки GraphicsMagic до 1.3.32.
Как защититься:
Обновиться.
Исполнение произвольного кода в Jira CVE-2019-11581Место обитания:
Система отслеживания ошибок Jira.
Техническое описание:
Аналогично прошлой уязвимости в Confluence (CVE-2019-3396), в Jira была обнаружена схожая template injection, позволяющая выполнить произвольный код с правами веб-приложения Jira. Форма контакта с администратором в Jira содержит параметры subject и details, которые никак не фильтруют пользовательский ввод и впоследствии будут обработаны парсером языка шаблонов velocity.
Особенности эксплуатации:
Без авторизации можно выполнить произвольный системный код следующим запросом:
В данном случае одним HTTP-запросом из браузера на сервер выполняется системная команда ping. Разумеется, вместо ping может быть что угодно — команда форматирования диска сервера или загрузка вредоносного ПО.
Кто подвержен:
Jira версий до 7.6.14, 7.13.5, 8.0.3, 8.1.2, 8.2.3
Как защититься:
Конечно же обновиться. На крайний случай, закрыть доступ к энд-поинту /secure/ContactAdministrators.jspa