20 августа вышла новая версия движка Drupal - 7.39. Это критическое обновление безопасности, которое нужно установить немедленно.
Главная причина обновления, не затрагивающего базовые файлы типа .htaccess, web.config, robots.txt и settings.php - выявленный сценарий межсайтового скриптинга, который проявляется в работе Ajax-скриптов в формах автозаполнения.
Уязвимость смягчается на сайтах, которые не позволяют ненадежные пользователям вводить HTML. Уязвимость смягчается тем, что злоумышленник должен иметь право загружать файлы.
Кроме того, выявлена уязвимость, когда пользователь с достаточно большими правами может провести SQL-иньекцию в комментариях.
Еще одна проблема - API Drupal позволял загружать файлы с функцией обратного вызова для работы с ненадежными данными, поскольку проверка новообразованного токена не выполняется достаточно рано. Эта уязвимость может позволить злоумышленнику загружать файлы на сайт под счет другого пользователя. Эта уязвимость смягчается тем, что загруженные файлы будут носить временный характер, и Drupal обычно удаляет временные файлы автоматически через 6 часов.
Что делает новая версия Drupal?
Система Ajax теперь проверяет URL-адреса, прежде чем сделать запрос Ajax. Существующий код, который использует API Drupal Ajax в любой из стандартных способов должен продолжать работать после этого обновления. Ajax запросы в Drupal никогда не должны быть сделаны для ненадежных URL.
По соображениям безопасности, система автозаполнения теперь делает Ajax запросы только на неочищенные URL, хотя защита работает также в месте для пользовательского кода, использующего чистые URL.
Когда форма API проверки токена не удается (например, если будет предпринята попытка подделки запросов межсайтового скриптинга, или пользователь пытается отправить форму после входа туда и обратно снова в то же время), форма API в настоящее время пропускает вызова элемента формы значение функции обратного вызова, для выбора списка обратных вызовов, предоставляемого ядром Drupal, что сохраняет безопасность. В редких случаях, это может привести к потере данных, когда пользователь отправляет форму и получает ошибку проверки токена, но в целом потери будут незначительными.
Следует немедленно обновить Drupal до 7.39 и одновременно обновить модуль CTools, если вы используете его.