Como ya se mencionó, las vulnerabilidades parcheadas se describen en detalle en esta página oficial (nuevos documentos comerciales): http://merch.docs.magento.com/ce/user_guide/Magento_Community_Edition_User_Guide.html#magento/patch-releases-2015.html
Resumen
Este paquete incluye protección contra los siguientes problemas relacionados con la seguridad:
- Fuga de información del cliente a través de RSS y escalada de privilegios
- Solicitar falsificación en Magento Connect conduce a la ejecución de código
- Scripting entre sitios en la lista de deseos
- Scripting de sitios cruzados en el carrito
- Divulgación de ruta de tienda
- Permisos en archivos de registro demasiado amplios
- Scripting entre sitios en Admin
- Scripting entre sitios en pedidos RSS
Después de parchear algunas tiendas, esto es lo que reuní:
Parches temáticos
Algunos archivos de temas se han parcheado con escapes adicionales para evitar posibles ataques XSS:
checkout/cart.phtml
checkout/cart/noItems.phtml
checkout/onepage/failure.phtml
rss/order/details.phtml
wishlist/email/rss.phtml
Si su tema (s) contiene alguna de estas plantillas, o si realizó modificaciones directamente base/default
(buena suerte, está jodido), entonces necesita parchearlas manualmente:
en las plantillas de pago, reemplace todas las ocurrencias de
$this->getContinueShoppingUrl()
con
Mage::helper('core')->quoteEscape($this->getContinueShoppingUrl())
en wishlist/email/rss.phtml
, reemplazar
$this->helper('wishlist')->getCustomerName()
con
Mage::helper('core')->escapeHtml($this->helper('wishlist')->getCustomerName())
En rss/order/details.phtml
, reemplazar
<?php echo $this->__('Customer Name: %s', $_order->getCustomerFirstname()?$_order->getCustomerName():$_order->getBillingAddress()->getName()) ?><br />
<?php echo $this->__('Purchased From: %s', $_order->getStore()->getGroup()->getName()) ?><br />
con
<?php $customerName = $_order->getCustomerFirstname() ? $_order->getCustomerName() : $_order->getBillingAddress()->getName(); ?>
<?php echo $this->__('Customer Name: %s', Mage::helper('core')->escapeHtml($customerName)) ?><br />
<?php echo $this->__('Purchased From: %s', Mage::helper('core')->escapeHtml($_order->getStore()->getGroup()->getName())) ?><br />
Permisos
.htaccess
Los archivos se han agregado downloader/Maged
y downloader/lib
no permiten el acceso directo a los archivos de origen. Si usa nginx, debe agregar estas reglas para lograr lo mismo (gracias a Ben Lessani para esta):
location /downloader/Maged/ { deny all; }
location /downloader/lib/ { deny all; }
Pero recomiendo excluir downloader
de las implementaciones a un sistema de sistema en vivo de todos modos, en este caso no necesita tomar medidas.
Privilegios de administrador (ACL)
Si usa cuentas de administrador restringidas, es posible que algunos menús de extensiones de terceros ya no funcionen para ellas. La razón es que el valor de retorno predeterminado de Mage_Adminhtml_Controller_Action::_isAllowed()
ha cambiado de true
a Mage::getSingleton('admin/session')->isAllowed('admin')
. Las extensiones que no anulan este método en sus controladores de administrador porque no usan la ACL, ahora necesitan el privilegio "TODOS" .
La única solución es parchear las extensiones y agregar este método a todos sus controladores de administrador:
protected function _isAllowed()
{
return true;
}
O si realmente tienen un recurso ACL definido en etc/adminhtml.xml
:
protected function _isAllowed()
{
return Mage::getSingleton('admin/session')->isAllowed('ENTER RESOURCE IDENTIFIER HERE');
}
(puede ver que el parche hace lo mismo para Phoenix_Moneybookers
versiones anteriores de Magento como 1.7 donde se incluyó esta extensión)
Para obtener una perspectiva más detallada sobre este problema y una explicación sobre cómo definir los recursos de ACL faltantes, consulte: Errores de acceso denegado después de instalar SUPEE-6285
Posibles errores al aplicar el parche
Mensaje:
can't find file to patch at input line 899
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff --git app/design/frontend/default/modern/template/checkout/cart.phtml app/design/frontend/default/modern/template/checkout/cart.phtml
|index 982ad5a..2bf6b37 100644
|--- app/design/frontend/default/modern/template/checkout/cart.phtml
|+++ app/design/frontend/default/modern/template/checkout/cart.phtml
--------------------------
File to patch:
Skip this patch? [y]
Skipping patch.
1 out of 1 hunk ignored
Motivo: el default/modern
tema se eliminó de la instalación
Solución: Agregue app/design/frontend/default/modern
desde una nueva descarga de Magento (debe ser la misma versión que su tienda). También puede usar este espejo: https://github.com/firegento/magento . Luego, después de aplicar el parche con éxito, puede eliminar el tema nuevamente.
Mensaje
patching file downloader/Maged/.htaccess
can't find file to patch at input line 915
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff --git downloader/Maged/Controller.php downloader/Maged/Controller.php
|index aa9d705..32755d7 100644
|--- downloader/Maged/Controller.php
|+++ downloader/Maged/Controller.php
--------------------------
File to patch:
Skip this patch? [y]
Skipping patch.
5 out of 5 hunks ignored
can't find file to patch at input line 976
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff --git downloader/Maged/Model/Session.php downloader/Maged/Model/Session.php
|index 18020eb..7013c94 100644
|--- downloader/Maged/Model/Session.php
|+++ downloader/Maged/Model/Session.php
--------------------------
File to patch:
Skip this patch? [y]
Skipping patch.
2 out of 2 hunks ignored
patching file downloader/lib/.htaccess
can't find file to patch at input line 1020
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff --git downloader/template/connect/packages.phtml downloader/template/connect/packages.phtml
|index 9cca5a6..f42e74e 100644
|--- downloader/template/connect/packages.phtml
|+++ downloader/template/connect/packages.phtml
--------------------------
File to patch:
Skip this patch? [y]
Skipping patch.
3 out of 3 hunks ignored
can't find file to patch at input line 1049
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff --git downloader/template/connect/packages_prepare.phtml downloader/template/connect/packages_prepare.phtml
|index f74c3df..86aa51b 100644
|--- downloader/template/connect/packages_prepare.phtml
|+++ downloader/template/connect/packages_prepare.phtml
--------------------------
File to patch:
Skip this patch? [y]
Skipping patch.
1 out of 1 hunk ignored
can't find file to patch at input line 1061
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff --git downloader/template/login.phtml downloader/template/login.phtml
|index 6e4cd2c..dbbeda8 100644
|--- downloader/template/login.phtml
|+++ downloader/template/login.phtml
--------------------------
File to patch:
Skip this patch? [y]
Skipping patch.
1 out of 1 hunk ignored
can't find file to patch at input line 1073
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff --git downloader/template/settings.phtml downloader/template/settings.phtml
|index 13551ac..47ab411 100644
|--- downloader/template/settings.phtml
|+++ downloader/template/settings.phtml
--------------------------
File to patch:
Skip this patch? [y]
Skipping patch.
1 out of 1 hunk ignored
Motivo: el downloader
directorio se eliminó de la instalación
Solución: Agregue downloader
desde una nueva descarga de Magento (debe ser la misma versión que su tienda). También puede usar este espejo: https://github.com/firegento/magento . Luego, después de aplicar el parche con éxito, puede eliminar el directorio nuevamente.
Mensaje: algo similar a
checking file app/design/frontend/base/default/template/checkout/cart.phtml
Hunk #1 FAILED at 97 (different line endings).
1 out of 1 hunk FAILED
checking file app/design/frontend/base/default/template/checkout/cart/noItems.phtml
Hunk #1 FAILED at 31 (different line endings).
1 out of 1 hunk FAILED
checking file app/design/frontend/base/default/template/checkout/onepage/failure.phtml
Hunk #1 FAILED at 29 (different line endings).
1 out of 1 hunk FAILED
checking file app/design/frontend/base/default/template/rss/order/details.phtml
Hunk #1 FAILED at 31 (different line endings).
1 out of 1 hunk FAILED
checking file app/design/frontend/base/default/template/wishlist/email/rss.phtml
Hunk #1 FAILED at 25 (different line endings).
1 out of 1 hunk FAILED
Motivo: los archivos se almacenan con \r\n
(CRLF, salto de línea de Windows) o \r
(CR, salto de línea de Mac) en lugar de \n
(LF, salto de línea de Unix).
Solución: simplemente convierta los saltos de línea, su editor de texto o IDE debería ser capaz de hacerlo.