Новое исправление безопасности для Magento 1, устраняющее 25 проблем APPSEC
https://magento.com/security/patches/supee-10752
Какие общие проблемы вы должны остерегаться при применении этого патча?
SUPEE-10752, Magento Commerce 1.14.3.9 и Open Source 1.9.3.9 содержат множество улучшений безопасности, которые помогают закрыть аутентифицированное удаленное выполнение кода администратором (RCE), подделку межсайтовых запросов (CSRF) и другие уязвимости.
Информация обо всех изменениях в выпусках 1.14.3.9 и 1.9.3.9 доступна в примечаниях к выпуску Magento Commerce и Magento Open Source.
Патчи и обновления доступны для следующих версий Magento:
Magento Commerce 1.9.0.0-1.14.3.9: SUPEE-10752 или обновление до Magento Commerce 1.14.3.9.
Magento Open Source 1.5.0.0-1.9.3.9: SUPEE-10752 или обновление до Magento Open Source 1.9.3.9.
источник
Ответы:
Как упомянуто в официальных документах Magento :
Конфликты во время установки исправления SUPEE-10752 чаще всего вызваны установкой версии 1 предыдущего исправления ( SUPEE-10570v1 ).
Обязательно удалите SUPEE-10570v1 и установите SUPEE-10570v2 до установки нового SUPEE-10752.
источник
Указанные ниже файлы изменены / созданы после применения патча
Для EE Edition следующие файлы добавляются кроме CE
Любой, кто переопределяет файл onepage.php, обновите его.
Для проверки ключа добавлено. Пожалуйста, проверьте, что в форме корзины есть ключ формы.
cron.php: дескриптор исключения в файле cron.php
GD2: вернуть реальный тип пантомимы.
Если вы используете nginx вместо Apache, убедитесь, что вы обновили свою конфигурацию, чтобы дублировать это изменение.
Способ доставки недавно добавленных / обновленных файлов:
Escapehtml файлы:
Загружаемые файлы веб-интерфейса продукта. Если вы используете загружаемый продукт, обновите файлы в файлах темы.
Проверьте код
Заменить
Проверьте код
Заменить
Проверьте код
Заменить
Проверьте код
Заменить
Заменить
Заменить
Проверьте код
Заменить
Проверьте код
Заменить
Другие Escapehtml файлы:
источник
Модификация перегруженного
filter
метода вZend_Filter_PregReplace
наивна и предполагает, что$this->_matchPattern
это всегда строка. Это свойство впоследствии предоставляется в качестве первого аргумента дляpreg_replace
. На самом деле, массив также является совершенно допустимым аргументом. Этот факт фактически используется несколькими основнымиZend_Filter
классами (такими какZend_Filter_Word_SeparatorToCamelCase
). Таким образом, любое расширение / ветвь кода, который использует этот фильтр или одну из его производных с аргументом массива_matchPattern
, начнет генерироватьWarning: substr() expects parameter 1 to be a string, array given
.Грубый пример того, что он, вероятно, должен сделать, будет что-то вроде:
Хотя я еще не провел тщательного тестирования этого.
РЕДАКТИРОВАТЬ: Стоит отметить, что хотя предложенное решение должно предотвратить ошибки, технически реализация все еще немного наивна и склонна к ложным срабатываниям. Предполагается, что разделитель регулярных выражений, отделяющий шаблон от модификаторов, такой же, как в начале строки. Технически это не должно иметь место, поскольку PHP поддерживает различные разделители в стиле скобок. Следовательно, действительный ввод
{hello}is
будет определять модификаторыhello}is
(а не фактические модификаторыis
) и, следовательно, будет выдавать исключение, даже если шаблон на самом деле не содержитe
модификатор.источник
1.7.0.2 Ошибка версии: после установки патча и перехода на одну страницу оформления заказа (общая проверка Magento) получите эту ошибку
Ошибка разбора: синтаксическая ошибка, неожиданная
При изменении патча ошибка исчезает.
Если углубиться в этот вопрос, я обнаружил, что патч добавил следующую строку в файл onepage.php.
РЕШЕНИЕ: благодаря @FabianSchmengler
ОБНОВЛЕНИЕ до PHP версии 5.4 и выше!
источник
известная проблема: -
Если ваш пользовательский код или расширение использует
Zend/Filter/PregReplace.ph
p с модификатором e, теперь он вернет ошибку из-за возможных проблем с RCE.Этот патч следует ниже безопасности.
+++ app/code/core/Mage/Admin/Model/User.php
а потом
class Mage_Admin_Model_User
app/code/core/Mage/Adminhtml/Block/Catalog/Product/Composite/Fieldset/Options.php
app/code/core/Mage/Adminhtml/Block/Catalog/Product/Edit/Tab/Options/Option.php app/code/core/Mage/Adminhtml/Block/Catalog/Product/Edit/Tab/Options/Option.php
app/code/core/Mage/Catalog/Model/Product.php
+++ app/code/core/Mage/Adminhtml/Block/Widget/Grid/Column/Filter/Datetime.php
app/design/frontend/base/default/template/downloadable/catalog/product/links.phtml
app/design/frontend/base/default/template/downloadable/checkout/cart/item/default.phtml
app/design/frontend/base/default/template/downloadable/checkout/onepage/review/item.phtml
app/design/frontend/base/default/template/downloadable/sales/order/items/renderer/downloadable.phtml
app/design/frontend/default/iphone/template/downloadable/checkout/onepage/review/item.phtml
app/design/frontend/rwd/default/template/downloadable/checkout/cart/item/default.phtml
app/design/frontend/rwd/default/template/downloadable/checkout/onepage/review/item.phtml
app/design/frontend/rwd/default/template/downloadable/sales/order/items/renderer/downloadable.phtml
app/code/core/Mage/Adminhtml/Model/LayoutUpdate/Validator.php
Mage_Adminhtml_Model_LayoutUpdate_Validator
Mage_Adminhtml_Model_LayoutUpdate_Validator
app/code/core/Mage/Catalog/Model/Resource/Category/Tree.php
app/code/core/Mage/Adminhtml/controllers/Catalog/CategoryController
app/code/core/Mage/Adminhtml/controllers/Cms/WysiwygController.php
lib/Varien/Image/Adapter/Gd2.php
app/code/core/Mage/Checkout/Model/Api/Resource/Customer.php
app/code/core/Mage/Checkout/Model/Type/Onepage.php
app/code/core/Mage/Core/Model/Session/Abstract/Varien.php
app/code/core/Mage/Customer/Helper/Data.php
app/code/core/Mage/Customer/Model/Resource/Customer.php
app/code/core/Mage/Customer/controllers/AccountController.php
Mage_Customer_AccountController
``
app/code/core/Mage/Log/Model/Visitor.php
app/code/core/Mage/Usa/Helper/Data.php
ДОБАВЛЕННЫЕ файлы для ИБП
Добавлена настройка для этого нового functoinlaity
app/code/core/Mage/Usa/etc/system.xml
843 строка
+886
app/design/adminhtml/default/default/template/system/shipping/ups.phtml
1> 1) Проверка продукта в комплекте
app/design/adminhtml/default/default/template/bundle/product/edit/bundle/option.phtml
источник
Похоже, что часть патча htmlEscaping все "getLinksTitle ()". Но они забыли следующие файлы (это основано на 1.8.1).
источник
Патч не работает на ванильном Magento CE 1.8.0.0
Обновление: добавлено решение ниже.
Проблема:
Применены предыдущие патчи:
Решение
Исправлено редактированием файла патча. Заменил патч на
downloadable.phtml
тот, который в патче,v1.7.0.2
в оригинальном файле патча, это строки 1854-1862.В основном это связано с отступом в файле. Поскольку изменения
downloadable.phtml
вV1.7.0.2
имеют более отступ.Решение 2
У меня была похожая проблема, но я смог ее исправить, заново сохранив исходный файл в редакторе, который заставлял конец строки быть LF в стиле Unix, а не CRLF в стиле Windows или Mac CR.
источник
Что касается Мэтта Антли, возможно, они не включили SUPEE-10570v2 из-за этого
Насколько я знаю, ошибка проверки была не очень распространена, и поэтому они решили остаться с SUPEE-10570, который защищает от двух проблем безопасности с низким риском ?!
источник
SUPEE-10570v2
им придется повторно применить ее.SUPEE-10752
и немного подпрыгнул. Еще раз спасибо за комментарии.Патч не работает на ванильном Magento CE 1.6.0.0
Обновление: добавлено решение ниже.
Проблемы:
Применены предыдущие патчи:
решаемая
Я исправил эту проблему, изменив файл патча. Я заменил блоки, из-за которых возникли проблемы, соответствующими патчами для v1.5.1.0. В исходном файле патча это строки 167-177 и 663-670.
источник
В EE v1.14.2.4 после применения SUPEE-10752 мне также пришлось применить следующий патч, чтобы исправить проблему, когда извлечение перенаправляется на домашнюю страницу вместо страницы успеха:
Файл: invalid_session_fix-2018-03-14-05-10-19.patch
Вышеупомянутое исправление найдено в https://magento.com/tech-resources/download в SUPEE-10570 > invalid_session_fix.patch (0 МБ)
источник
Я столкнулся с проблемой после этого патча. Я не могу установить «Свободный метод» для «Типа ИБП», «Объединенный пакет услуг XML». Magento выдает ошибку, когда какой-либо метод выбран в раскрывающемся списке «Бесплатный метод». Ошибка: « Поле» Ups Free Method «имеет неправильное значение ».
Кто-нибудь сталкивался с такой же проблемой и получил решение?
Заранее спасибо!
источник
На 1.6 патч ups.phtml сломан. Он ссылается на $ StoreOriginShipment, $ StoreFreeShipment, которые имеют опечатку в 1.6 ($ stroredOriginShipment и $ stroredFreeShipment). Кроме того, он ссылается на $ storeUpsType, который вообще не существует в 1.6.
источник
Мы столкнулись с проблемой на 1.9.1.0 и 1.9.2.4 (не тестировали на других). Это не появляется на всех наших проектах, но это повторилось на нескольких из них. Мы думаем, что это может повлиять на проекты, в которых в какой-то момент был установлен SUPEE-10570v1.
После применения патча, если пользователь войдет в систему, он прекрасно увидит страницу своего аккаунта. Однако, если они попытаются вернуться на любую другую страницу на сайте, страница перестанет отвечать на запросы и увидит либо пустой экран, либо 502 Bad Gateway. Это происходит из-за того, что PHP заходит в бесконечный цикл и либо вызывает сбои, либо останавливается настройками .ini.
Я сумел раскопать , что проблема является бесконечной рекурсией на линии , которая загружает
$customer
в\app\code\core\Mage\Customer\Helper\Data.php
,getPasswordTimestamp()
.Если посмотреть на трассировку стека бесконечной рекурсии, она снова и снова возвращается к этому. Почему-то кажется, что в
->load()
итоге вызываетсяgetPasswordTimestamp()
метод.Обходной путь, указанный в /magento//a/235984/67252, работает нормально, но я хотел бы знать, что происходит.
источник
После применения патча SUPEE 10752, Регистрация и Оформление берут страницу успеха на главную страницу. Какие-либо предложения?
источник
Мы увидели пустую страницу в / checkout / * после применения SUPEE-10752 и компиляции
версия: 1.9.1.0
Условия запуска: применение SUPEE-10752 + включение компилятора + вход в систему в качестве клиента, затем посещение / проверка / *
Просто для пояснения: с деактивированным компилятором все шло хорошо, с активированным компилятором мы могли видеть только пустую страницу корзины при входе в систему без каких-либо записей журнала (даже после активации всех возможных журналов и режима разработчика).
источник