База знаний
Общая информация по исправлению уязвимости unserialize
ID статьи: 446
, создана 06 фев 2025
Актуально для:
Уязвимость unserialize
Решение
Для исправления уязвимости нужно в местах, где используется функция unserialize, указать в качестве второго аргумента ['allowed_classes' => false].
Пример:
было: unserialize($_REQUEST["PARAMS"])
стало: unserialize($_REQUEST["PARAMS"], ['allowed_classes' => false])
Обязательно проверить директории:
/ajax/
/include/
/form/
/bitrix/components/aspro/
Запустить поиск по этим папкам слова unserialize и внести правки во всех местах где требуется.


Если у вас вместо unserialize используется Solution::unserialize() или CMax::unserialize, то ничего добавлять не нужно. Эти методы уже содержат правку. То есть у вас установлено обновление, устраняющее эту уязвимость.
есть к примеру строчка:
$arValue = unserialize(Option::get(self::moduleID, $key, serialize(array()), $SITE_ID));
с ней надо что то делать?
Алексей, добрый день! Спасибо за вопрос.
Вам нужно добавить 2-й параметр в эту строку: ['allowed_classes' => false]. В статье мы указали директории, к которым злоумышленники могут получить доступ: их нужно обновить в первую очередь.
Также рекомендуем обновить платформу и решение, поскольку в директорию modules улучшения безопасности вносятся в первую очередь. Если еще появятся вопросы, будем на связи!
Юрий, добрый день!
Можете обратиться в нашу техподдержку:
Специалисты подскажут, как решить вопрос.
Хорошего дня!