Выпущено обновление безопасности модуля bkvsoft.webp
Выпущено обновление безопасности модуля bkvsoft.webp. Обновление устраняет ряд уязвимостей, выявленных в предыдущей версии модуля, и направлено на повышение защищённости административного интерфейса, AJAX-обработчиков, механизма сохранения настроек и операций массовой конвертации изображений.
Пользователям рекомендуется установить актуальную версию модуля bkvsoft.webp 0.0.2 в приоритетном порядке.
Какие уязвимости были исправлены
1. Недостаточная защита административных AJAX-методов
В предыдущей версии отдельные AJAX-методы модуля могли выполнять операции изменения состояния без обязательной проверки прав администратора и без проверки Bitrix sessid.
В обновлении добавлены:
- проверка прав администратора для административных AJAX-операций;
- проверка
check_bitrix_sessid()для защиты от CSRF; - передача sessid во все административные AJAX-запросы;
- ограничение публичного доступа только для сценария обработки webp-изображений.
2. CSRF при сохранении настроек модуля
В предыдущей версии сохранение настроек административной формы проверяло права пользователя, но не выполняло полноценную серверную проверку CSRF-токена.
В обновлении добавлена обязательная серверная проверка
check_bitrix_sessid() до изменения любых настроек модуля.
3. Потенциальная stored XSS в административном интерфейсе
В предыдущей версии отдельные значения настроек выводились в
административной форме внутри textarea без дополнительного
HTML-экранирования на выводе.
В обновлении добавлено экранирование через htmlspecialcharsbx() для значений:
image_search_page_custom_regexp;site_exeptions_page.
Это исключает выполнение HTML- или JavaScript-кода в административном интерфейсе при попадании таких данных в настройки модуля.
4. Риски при обработке пользовательских регулярных выражений
В предыдущей версии пользовательские регулярные выражения могли использоваться при обработке содержимого публичных страниц. Некорректные или чрезмерно сложные выражения могли привести к повышенной нагрузке на сервер.
В обновлении добавлены:
- ограничение длины пользовательского шаблона;
- фильтрация управляющих символов;
- проверка компиляции регулярного выражения перед использованием;
- базовая фильтрация потенциально опасных ReDoS-конструкций;
- защита callback-обработчика при отсутствии группы захвата.
5. Усиление SQL-запроса при обновлении записей файлов
В предыдущей версии при массовой конвертации изображений выполнялось
обновление записей таблицы b_file с ручной сборкой SQL-запроса.
В обновлении добавлены:
- экранирование имени файла через
$DB->ForSql(); - приведение
FILE_IDк целочисленному типу; - приведение
FILE_SIZEк целочисленному типу.
Это снижает риск повреждения SQL-запроса при нестандартных значениях имени файла.
6. Безопасная десериализация служебных опций
В предыдущей версии отдельные служебные опции модуля десериализовались без запрета восстановления объектов.
В обновлении используется безопасная форма десериализации:
unserialize($data, ['allowed_classes' => false]).
Это снижает риски, связанные с небезопасной обработкой сериализованных данных.
7. Ограничение генерации административных PHP-файлов
В предыдущей версии административные PHP-файлы могли создаваться на
основании содержимого каталога admin/.
В обновлении добавлен allowlist разрешённых административных файлов.
Теперь прокладка в /bitrix/admin/ создаётся только для явно
разрешённого файла административного интерфейса модуля.
Какие риски имеются при использовании предыдущей версии
Использование предыдущей версии модуля может создавать следующие риски:
- несанкционированный запуск ресурсоёмких операций конвертации изображений;
- создание повышенной нагрузки на сайт;
- изменение настроек модуля через CSRF-сценарии при активной административной сессии;
- потенциальное выполнение нежелательного HTML- или JavaScript-кода в административном интерфейсе;
- деградация производительности из-за некорректных регулярных выражений;
- повреждение SQL-запросов при нестандартных именах файлов;
- повышенные риски при обработке сериализованных служебных данных;
- создание административных PHP-прокладок для непредусмотренных файлов.
Наиболее значимый риск предыдущей версии связан с административными AJAX-методами, которые выполняют операции изменения состояния: запуск задач конвертации, обработку файлов и управление задачами. В новой версии эти операции защищены проверкой прав администратора и Bitrix sessid.
Что необходимо сделать пользователям
Рекомендуется обновить модуль bkvsoft.webp до версии 0.0.2 или выше сразу после публикации обновления.
После установки обновления рекомендуется:
- очистить кеш сайта;
- проверить доступность административной страницы модуля;
- проверить работу AJAX-операций в административном интерфейсе;
- убедиться, что массовая конвертация изображений запускается только из административной зоны;
- проверить корректность сохранения настроек модуля.
Если обновление по каким-либо причинам не может быть установлено сразу, рекомендуется временно ограничить доступ к административному интерфейсу модуля только доверенным администраторам и не использовать массовую конвертацию изображений до установки исправленной версии.
Статус
Уязвимости устранены в версии bkvsoft.webp 0.0.2. Обновление рекомендуется установить всем пользователям модуля.
