Разработчики SPIP выпустили версию 4.4.29. Она закрывает многочисленные уязвимости в системе управления сайтом. Среди них есть выполнение произвольного кода на сервере, повышение привилегий и порча данных. Затронуты все установки, которые ещё не перешли на этот выпуск.
Что меняется после установки 4.4.29
Уязвимости разные по природе. Есть межсайтовый скриптинг, или XSS: чужой скрипт попадает на страницу сайта и выполняется в браузере того, кто её открыл. Есть SQL-инъекция - подставной запрос к базе, через который можно прочитать или изменить хранящиеся там записи. Отдельно идут повышение привилегий и произвольное удаление файлов. Все вместе они бьют по целостности данных.
Часть приёмов требует входа в систему. Удаление файлов и один из вариантов XSS работают только для аутентифицированного пользователя. Другой вариант срабатывает до входа, и учётные данные для него не нужны. Для XSS важно, откроет ли человек подготовленную страницу: скрипт выполняется в его браузере, а не на сервере напрямую. Из-за этого атака зависит и от поведения пользователя, и от конфигурации сайта.
Практический риск складывается из доступа. Одна уязвимость даёт точку входа, другая расширяет права, третья позволяет менять файлы и записи. Обновлять нужно весь набор сразу, а не отдельные компоненты. Иначе часть приёмов останется рабочей.
XSS после входа ведёт к выполнению кода
Оба варианта помечены одинаково, но последствия расходятся. Скрипт, который проникает на страницы после аутентификации, разработчики связывают с возможностью выполнить код на сервере. Успешная цепочка превращает права редактора или администратора в доступ к самому хосту. До входа цепочка обрывается на браузере жертвы.
Сведений о применении этих уязвимостей в реальных атаках разработчики не приводят. Публикация исправления сама по себе не подтверждает, что кто-то уже пользовался ошибками.
Кэш и экран безопасности
Выпуск исправляет и ошибку в кэше ajax-контекстов. Кэш разрастался непомерно. Кроме того, его можно было отравить, подсунув следы попыток эксплуатации старых уязвимостей. Исправление возвращает кэшу нормальный размер и убирает этот побочный канал.
В SPIP есть экран безопасности - механизм, который сам закрывает известные уязвимости, не требуя обновления ядра. На эти уязвимости автоматическая защита не распространяется. Поэтому администраторам придётся ставить сам выпуск 4.4.29. Ждать, что защита подтянется сама, бесполезно.
Порядок обновления
Сначала обновите плагин memoization до версии 4.1.2. Разработчики просят сделать это до запуска обновления SPIP. Дальше можно ставить саму 4.4.29.
Ставить выпуск удобнее через spip_loader - служебный загрузчик, который копирует файлы и запускает установку. Актуальная версия загрузчика - 8.0.5. Если установку нужно настроить под себя, рядом с ним размещают файл конфигурации. Ветка 4.4 остаётся на активной поддержке и работает с PHP 7.4 - PHP 8.5. Другие ветки в бюллетене не упоминаются.
Правки затронули не только ядро, но и несколько плагинов. Списки изменений по ним разработчики опубликовали отдельно. После обновления номер версии в интерфейсе должен показывать 4.4.29.