В Drupal закрыты серьезные бреши

18 января 2019 г., пятница

Обновления 8.6.6, 8.5.9 и 7.62 устраняют два бага, связанные с использованием файлов в формате .phar.

Для CMS-системы Drupal версий 7 и 8 вышли обновления, устраняющие два бага удаленного исполнения кода, которые разработчики оценили как критические. Оба они привнесены с появлением в репертуаре Drupal файлов в формате .phar — исполняемых PHP-архивов, поддержка которых была введена в PHP 5.3.

Одна из закрываемых уязвимостей присутствует во встроенной в PHP обертке потока phar, предоставляющей доступ к файлам внутри phar-архива с использованием стандартных функции PHP. Согласно бюллетеню, проблема проявляется при обработке недоверенных URI-идентификаторов phar:// в ходе выполнения файловых операций.

Разработчики признали, что причиной появления бреши является неадекватная проверка достоверности вводимых пользователем данных. Они также не преминули отметить, что эксплойт в данном случае требует особых условий: подобные пути выполнения кода обычно возможны лишь при наличии административного разрешения или при нестандартных настройках.

Уязвимость устранена добавлением .phar в список опасных расширений — в результате все загружаемые на сайт файлы .phar будут автоматически конвертироваться в .txt, чтобы предупредить их исполнение (Drupal так же поступает с php-файлами).

Кроме того, разработчики заменили обертку потока phar в Drupal 8 и отключили в Drupal 7, так как последняя использует PHP версий ниже 5.3.3, с которыми обновление несовместимо. Если пользователю Drupal 7 все же понадобится поддержка .phar, он сможет ее включить, но тогда вернется и проблема.

Вторая уязвимость (CVE-2018-1000888) привязана к библиотеке PEAR Archive_Tar сторонней разработки. Чтобы интерпретатор PHP мог работать с нужными файлами, они вначале собираются в архивы .tar с помощью этой библиотеки. Такой порядок позволяет обойти некоторые ограничения формата .phar — например, недопустимость кириллицы в названии файла. В противном случае файлы придется переименовывать при запаковке, а при распаковке возвращать в исходный вид.

Согласно описанию в базе MITRE, уязвимость CVE-2018-1000888 можно использовать для удаления или модификации произвольных файлов, в том числе через удаленное исполнение кода. Разработчики Archive_Tar закрыли брешь в конце прошлого года, теперь от нее избавились в Drupal.

Патчи для обеих уязвимостей включены в состав обновлений Drupal 8.6.6, 8.5.9 и 7.62. Ветки CMS-системы ниже 8.5.x сняты с поддержки, пользователям рекомендуется произвести апгрейд.

Разработчики также объявили, что и впредь будут публиковать отдельные бюллетени для каждой уязвимости — вместо сводных сообщений, как это было раньше.

Threatpost