В модуле - Services CMS Drupal обнаружено несколько критичных уязвимостей, приводящих к выполнению произвольного кода на атакуемой системе.
Services - это «стандартизованное решение для построения API CMS Drupal, служащее для построения связей SOAP, REST или XMLRPC. В настоящее время это 150-й наиболее используемый плагин Drupal, установленный на порядка 45 000 активных веб-сайтов.
Уязвимость находится в исходном коде модуля, а именно в функционале SelectQueryInterface(), и существует из-за недостаточной фильтрации входных данных.
Эксплуатация происходит в три этапа:
1. Получение хэша администратора через SQL-инъекцию в параметре name через UNION SELECT
Пример запроса:
(name= # Injection starts here 0x3a) UNION SELECT ..., base.name AS name, '$S$DfX8LqsscnDutk1tdqSXgbBTqAkxjKMSWIfCa7jOOvutmnXKUMp0' AS pass, base.mail AS mail, ...FROM {users}ORDER BY (uid # Injection ends here );
2. Замена хэша на хэш пароля (известного) злоумышленнику.
3. Отправка измененного хэша.
Как результат, злоумышленник может получить доступ к системе от имени администратора.
Использование Web Application Firewall позволяет блокировать подобные атаки.