
Патч для Magento 2 для CVE-2022-24086, CVE-2022-24087. Исправляет уязвимость RCE и связанные ошибки путем глубокого экранирования переменных шаблонов. Если вы не можете обновить Magento или применить официальные патчи, попробуйте этот.
Патч Magento 2 для CVE-2022-24086, CVE-2022-24087. Исправляет RCE-уязвимость и связанные ошибки путем глубокого экранирования переменных шаблона. Если вы не можете обновить Magento или применить официальные патчи, попробуйте этот.
CVE-2022-24086 (с CVE-2022-24087) была обнаружена в начале 2022 года.
Затронутые магазины имеют эту уязвимость удаленного выполнения кода (RCE) без обходного пути. В феврале 2022 года было выпущено 2 официальных изолированных патча.
Однако даже в конце 2024 года мы продолжаем получать консультации по этой проблеме, и в их взломанных магазинах было установлено, что эта уязвимость использовалась. Наблюдаемые атаки выполнялись путем ввода строки, содержащей template directive. Обычно с использованием процесса оформления заказа, действий, которые могут вызвать отправку электронного письма с полями, управляемыми пользователем, и т.д.
Мы создали этот патч из-за широкого распространения атак и того, что некоторые магазины все еще испытывают трудности с обновлением до незатронутых версий или применением двух официальных патчей.
Создавая этот патч как расширение, мы помнили о совместимости. Он в основном протестирован на серии Magento 2.4.
Хотя в официальной документации сказано «методы больше не могут вызываться из переменных ни в директиве var, ни при использовании в качестве параметров», но, как мы подтвердили, даже в последней версии (2.4.7-p3) вызов метода «Getter» для Data Object и вызов метода getUrl для объекта Email Template (\Magento\Email\Model\AbstractTemplate) все еще разрешены.
Этот патч (расширение) также сохраняет вышеуказанные функции. Таким образом, {{var data_object.something}} и {{var data_object.getSomething()}} оба корректны и эквивалентны.
Пример getUrl:
{{var this.getUrl($store,'route_id/controller/action',[_query:[param1:$obj.param1,param2:$obj.param2],_nosid:1])}}
Вкратце, после установки этого расширения:
\Magento\Framework\DataObject или его экземпляром-наследником, не могут быть доступны\Magento\Framework\DataObject и его экземпляров-наследников разрешены только методы «Getter»getUrl работает только для thisУдален LegacyResolver для остановки RCE.
Введена «отложенная директива с подписью» для дочернего шаблона. Не уверены, дает ли это какое-либо улучшение безопасности.
Все еще содержит неисправленную ошибку (#39353).
Используем «глубокое экранирование переменных шаблона» перед процессом фильтрации шаблона. LegacyResolver будет получать только экранированные пользовательские данные, поэтому его можно сохранить.
Magento 2.3 или 2.4
composer require wubinworks/module-template-filter-patch
Если вам нравится это расширение или оно вам помогло, пожалуйста, поставьте ★звезду☆ этому репозиторию.
Вам также могут понравиться:
Патч Magento 2 для CVE-2024-34102 (также известная как Cosmic Sting)
Улучшенная безопасность XML Magento 2
CLI-менеджер ключей шифрования Magento 2
Патч JWT-аутентификации Magento 2
Расширение Magento 2 для отключения смены email клиента
Расширение Magento 2 для отключения клиента