Фактичний патч безпеки ( SUPEE-6482 ) впливає лише на два наступні файли і є патчем API.
app/code/core/Mage/Api/Model/Server/Adapter/Soap.php
app/code/core/Mage/Catalog/Model/Product/Api/V2.php
Повна установка 1.9.2.1 - це зовсім інша справа. Я б відрізняв вихідний код між 1.9.2.0 та 1.9.2.1, щоб визначити інші два елементи, які були виправлені.
Примітки до випуску призначені для повного інсталятора, ви повинні перевірити виправлення, щоб перевірити, чи він насправді включає всі елементи, відмічені в нотатках до випуску.
Наслідки запуску непатчерного сервера:
- Міжсайтовий сценарій з використанням недійсних заголовків => Отруєння кешем
- Автозавантаження включеного файлу в Magento SOAP API => Автозавантаження віддаленого коду
- XSS у пошуку реєстру подарунків => крадіжка файлів cookie та себе за себе
- Уразливість SSRF у файлі WSDL => Внутрішня витік інформації сервера та включення віддаленого файлу
ПРИМІТКА. Файли, виправлені в архіві повного встановлення, які не виправлені з патчем, так?
diff -r magento-1920/app/code/core/Mage/Core/Controller/Request/Http.php magento-1921/app/code/core/Mage/Core/Controller/Request/Http.php
300a301
> $host = $_SERVER['HTTP_HOST'];
302,303c303,304
< $host = explode(':', $_SERVER['HTTP_HOST']);
< return $host[0];
---
> $hostParts = explode(':', $_SERVER['HTTP_HOST']);
> $host = $hostParts[0];
305c306,313
< return $_SERVER['HTTP_HOST'];
---
>
> if (strpos($host, ',') !== false || strpos($host, ';') !== false) {
> $response = new Zend_Controller_Response_Http();
> $response->setHttpResponseCode(400)->sendHeaders();
> exit();
> }
>
> return $host;
diff -r magento-1920/app/design/frontend/base/default/template/page/js/cookie.phtml magento-1921/app/design/frontend/base/default/template/page/js/cookie.phtml
37,38c37,38
< Mage.Cookies.path = '<?php echo $this->getPath()?>';
< Mage.Cookies.domain = '<?php echo $this->getDomain()?>';
---
> Mage.Cookies.path = '<?php echo Mage::helper('core')->jsQuoteEscape($this->getPath()) ?>';
> Mage.Cookies.domain = '<?php echo Mage::helper('core')->jsQuoteEscape($this->getDomain()) ?>';