Эксперт Ларри Кешдоллар (Larry Cashdollar), сотрудник Akamai SIRT (Security Intelligence Response Team), обнаружил опасную проблему CVE-2018-9206 в популярном плагине jQuery File Upload, который создал немецкий девелопер Себастьян Чан (Sebastian Tschan), более известный как Blueimp. Уязвимы все версии плагина до версии 9.22.1.

Данный плагин – самый заплюсованный jQuery-проект на GitHub после самого фреймворка, у него насчитывается более 7800 форков, он интегрирован с сотнями, если не с тысячами, различных проектов, включая CMS, CRM, интранет-решения, плагины для  WordPress, аддоны для Drupal, компоненты Joomla и так далее. Фактически, уязвимость в jQuery File Upload может угрожать множеству платформ, установленных в самых разных местах.

Кешдоллар объясняет, что уязвимость в плагине может использоваться для загрузки на сервер вредоносных файлов, таких как бэкдоры и веб-шеллы. Хуже того, проблема уже используется злоумышленниками, и это происходит как минимум с 2016 года. На YouTube даже можно обнаружить туториалы по эксплуатации бага в  jQuery File Upload, самые ранние из которых датированы августом 2015 года.

Когда специалист уведомил о проблеме разработчика, Blueimp тщательно изучил его отчет и провел собственное исследование кода своей разработки. Как оказалось, корни бага уходят к изменениям в Apache Web Server, появившихся в 2010 году. Эти изменения косвенно затронули и изменили поведение плагина на серверах Apache.

Дело в том, что в ноябре 2010 года, за несколько дней до релиза первой версии jQuery File Upload, разработчики Apache Foundation представили Apache HTTPD версии 2.3.9. Этот релиз не отличался чем-то особенным, если не считать того факта, что начиная с этой версии у Apache HTTPD-сервера появилась опция, позволяющая владельцу сервера игнорировать кастомные настройки безопасности для индивидуальных директорий, сделанные с помощью файлов .htaccess. Эта настройка была активна по умолчанию.

В свою очередь, jQuery File Upload был создан таким образом, чтобы полагаться в работе именно на кастомный файл .htaccess, содержащий ограничения безопасности для директории загрузки. Тогда разработчик попросту не знал о том, что несколько дней назад создатели Apache HTTPD внесли в свой продукт изменение, вредящее корректной работе его плагина.

Пытаясь оценить потенциальный ущерб от обнаруженной уязвимости, Ларри Кешдоллар изучил GitHub-форки плагина и пришел к неутешительным выводам. Проверив 1000 различных решений из 7800 доступных, он обнаружил, что уязвимы практически все (не поддались уязвимости лишь 36 проектов). Исследователь уже опубликовал на  GitHub PoC-эксплоит и код, который использовал для тестирования.

Кешдоллар также связался со специалистами US-CERT, учитывая всю серьезность уязвимости и ее возможные последствия. Кроме того, специалист попросил помощи у разработчиков GitHub, так как сейчас нужно постараться связаться со всеми авторами уязвимых форков. Однако, это лишь первые необходимые шаги, ведь jQuery File Upload был интегрирован и с бессчетным числом веб-приложений, и выявить все пострадавшие проекты будет крайне трудно.

1 комментарий

  1. emeliyanov

    22.10.2018 at 23:23

    Вы-таки меня простите, но jQuery это фронтэнд. Если пользователь может писать файлы в какую-то директорию, куда он писать не должен, это проблема конфигурации веб-сервера и этот файл он запишет c jQuery или без него (curl, Powershell, netcat и т.п.)

Оставить мнение