Проблема по меньшей мере три года активно эксплуатируется злоумышленниками.
Киберпреступники активно эксплуатируют уязвимость в популярном плагине jQuery File Upload для внедрения вредоносных файлов и перехвата контроля над серверами. Плагин и его ветки (более 7,8 тыс.), созданный немецким разработчиком Себастьяном Чаном (Sebastian Tschan), также известным как Blueimp, реализованы в огромном количестве проектов, в частности CMS-, CRM-системах, WordPress плагинах, дополнениях Drupal, компонентах Joomla и пр.
Уязвимость в исходном коде jQuery File Upload, предназначенном для множественной загрузки файлов, обнаружил специалист Akamai Ларри Кэшдоллар (Larry Cashdollar). По его словам, проблема активно эксплуатируется киберпреступниками по меньшей мере с 2015 года. Уязвимость (CVE-2018-9206) затрагивает все версии плагина до 9.22.1.
Разработчик jQuery File Upload провел собственный анализ, по итогам которого выяснилось, что в действительности уязвимость связана не с исходным кодом приложения, а с изменением, внесенным командой проекта Apache Web Server в 2010 году, косвенным образом повлиявшим на поведение плагина на серверах Apache. Речь идет о выпущенной в ноябре 2010 года версии Apache HTTP Server 2.3.9, в которой появилась возможность игнорировать пользовательские настройки в отдельных папках, выставленных через файлы .htaccess. Данная опция включена по умолчанию в версии Apache HTTP Server 2.3.9 и последующих релизах.
Поскольку Blueimp не знал об изменениях, внесенных за несколько дней до выхода первой версии плагина, он не учел их в коде программы, использующей кастомный файл .htaccess для установки ограничений безопасности в папке выгрузки файлов. Проблема устранена в версии jQuery File Upload 9.22.1.
Кэшдоллар протестировал 1 тыс. из 7,8 тыс. форков jQuery File Upload, доступных на GitHub, и обнаружил, что уязвимость отсутствовала всего лишь в 36 из них. Инструмент для проверки приложений на наличие уязвимости и PoC-код опубликованы на GitHub.