Cómo verificar qué módulos están afectados por el parche de seguridad SUPEE-6788

71

El 27 de octubre de 2015, Magento lanzó el parche de seguridad SUPEE-6788. De acuerdo con los detalles técnicos , 4 APPSEC que se han solucionado requieren algunos cambios en los módulos locales y comunitarios:

  • APPSEC-1034, abordando eludiendo la URL de administración personalizada (deshabilitada de manera predeterminada)
  • APPSEC-1063, abordando la posible inyección SQL
  • APPSEC-1057, el método de procesamiento de plantillas permite el acceso a información privada
  • APPSEC-1079, abordando el potencial exploit con un tipo de archivo de opción personalizado

Me preguntaba cómo verificar qué módulos están afectados por este parche de seguridad.

Se me ocurrió la siguiente solución parcial:

  • APPSEC-1034: busque <use>admin</use>en config.xml de todos los módulos locales y comunitarios. Creo que esto debería enumerar todos los módulos afectados por este problema.
  • APPSEC-1063: busca addFieldToFilter('(y addFieldToFilter('`en todos los archivos PHP de módulos locales y comunitarios. Esto está incompleto, ya que las variables también se pueden usar.
  • APPSEC-1057: busque {{config path=y {{block type=en todos los archivos PHP de módulos locales y comunitarios, y filtre todos los elementos de la lista blanca. Sin embargo, esto está incompleto, ya que no contiene ninguna variable de plantilla agregada por los administradores.
  • APPSEC-1079: ni idea.

También hay una lista de extensiones que son vulnerables para APPSEC-1034 y APPSEC-1063 compiladas por Peter Jaap Blaakmeer

Aad Mathijssen
fuente
No tengo idea de cómo contactar a @PeterJaapBlaakmeer pero tengo una extensión que necesita agregarse a la lista: FreeLunchLabs ConstantContact para el problema de la URL del administrador
David Wilkins
66
¿A quién se le ocurrió alguna de estas soluciones? ¿De repente habrá un tipo de bloque y una lista blanca variable? Actualizar Magento siempre ha sido una molestia, pero un buen trabajo para Magento por hacerlo aún más doloroso.
Agop
66
Je, Magento, el regalo que sigue dando. Acabo de terminar de actualizar TODOS los módulos para la compatibilidad 1.9.2.1. Los desarrolladores de módulos de apuestas simplemente saltan de alegría o corren gritando por las colinas.
Fiasco Labs
3
en este momento, parche pospuesto para la próxima semana: posponga el lanzamiento del parche de seguridad hasta principios de la próxima semana y modifique el parche para que los cambios de enrutamiento de administrador estén desactivados de manera predeterminada. Esto significa que el parche incluirá la solución, pero que se desactivará cuando se instale. La nueva fecha de lanzamiento y los cambios en el parche le darán algo de tiempo adicional para realizar actualizaciones a su código y les dará a los comerciantes flexibilidad para activar esta parte del parche una vez que sus extensiones y personalizaciones se hayan actualizado para trabajar con él.
FireBear

Respuestas:

55

SUPEE-6788 lanzado y cambios de enrutamiento de administrador desactivados por defecto. Esto significa que el parche incluye la corrección, pero que se desactivará cuando se instale. Esto le dará algo de tiempo adicional para actualizar su código y le dará a los comerciantes flexibilidad para activar esta parte del parche una vez que sus extensiones y personalizaciones se hayan actualizado para trabajar con él.

Para habilitar la capacidad de enrutamiento de administrador para extensiones después de instalar la ruta, vaya a Admin -> Avanzado -> Admin -> Seguridad.

¡Los parches Magento CE 1.4-1.6 se retrasan y deberían estar disponibles en aproximadamente una semana!

SUPEE-6788 Lista de recursos

FireBear
fuente
Para cualquier módulo "no se arreglará", ¿podemos documentar lo que en general se necesita cambiar para que estos módulos se puedan parchear manualmente para que funcionen con 6788? Por ejemplo, "eliminar X de todas las addFieldToFilterllamadas".
Tyler V.
1
El parche ha sido lanzado. Por favor actualice su respuesta.
7ochem
@FireBear Ya he aplicado parches de Magento en el pasado muchas veces. Pero tengo una duda sobre SUPEE-6788. ¿Debo aplicarlo como otros parches y luego puedo habilitar la capacidad de enrutamiento de administrador en el panel de administración de Magento o solo durante el tiempo de instalación solo tengo que cuidarme? Por favor recomiende.
Mukesh
2
@Muk, sí, puede instalarlo como otros parches, pero debe tener cuidado con las extensiones rotas, si usa algunas extensiones de la lista, debe arreglarlas manualmente o esperar la actualización de los desarrolladores, hasta que pueda habilitarlo - Capacidad de enrutamiento de administrador para extensiones
FireBear
@FireBear ¿Podría darnos su opinión sobre community.magento.com/t5/Version-Upgrades/… (Antes y después en el módulo personalizado)
Mukesh
21

En línea con otros comentarios sobre la detección de conflictos, en ParadoxLabs hemos creado un script para rastrear todo lo afectado por APPSEC-1034 (controladores de administrador) y APPSEC-1057 (lista blanca). También intentará reparar cualquier controlador malo, ya que es un cambio bastante preciso e invasivo.

No cubre APPSEC-1063 (inyección SQL) o APPSEC-1079 (opciones personalizadas), pero sería genial si pudiera. No estoy seguro de cómo detectarlos con algún tipo de precisión. Estamos abiertos a contribuciones.

https://github.com/rhoerr/supee-6788-toolbox

Ryan Hoerr
fuente
3
esto parece realmente útil, buen trabajo!
paj
fixWhitelists agrega bloques a las listas blancas, pero no parece hacer lo mismo con las variables, ¿podría confirmar?
zigojacko
1
@zigojacko Cubre ambos.
Ryan Hoerr el
Sí, descubrí esto dándole una oportunidad. Excelente trabajo, super trabajo por ParadoxLabs :)
zigojacko
Respeto a ParadoxLabs. Esa herramienta está ahorrando una gran cantidad de trabajo.
DarkCowboy
5

Este script php podría ser útil para identificar el código de Magento afectado por el parche SUPEE-6788 propuesto .

Esta no es una verificación de seguridad infalible para este parche, pero puede ser útil para escanear rápidamente su instalación en busca de los módulos y el código afectado.

Instale el script con

wget https://raw.githubusercontent.com/gaiterjones/magento-appsec-file-check/master/magento_appsec_file_check.php

edite la ruta a su instalación de Magento

$_magentoPath='/home/www/magento/';

correr

php magento_appsec_file_check.php

Se mostrarán los archivos afectados:

*** Magento security file check ***
[1] APPSEC-1034, addressing bypassing custom admin URL
2 effected files :
<use>admin</use> found in  app/code/community/Itabs/Debit/etc/config.xml
<use>admin</use> found in  app/code/core/Mage/Adminhtml/etc/config.xml


[2] APPSEC-1063, addressing possible SQL injection
2 effected files :
collection->addFieldToFilter(' found in  app/code/community/Itabs/Debit/Model/Export/Abstract.php
collection->addFieldToFilter(' found in  app/code/community/Itabs/Debit/controllers/Adminhtml/OrderController.php
collection->addFieldToFilter(' not found.
collection->addFieldToFilter('\` not found.
collection->addFieldToFilter('\` not found.


[3] APPSEC-1057, template processing method allows access to private information
{{config path= not found.
{{block type= not found.


***********************************

La secuencia de comandos utiliza grep para buscar en los archivos de Magento las apariciones del código que pueden romper la compatibilidad con personalizaciones o extensiones cuando se aplica SUPEE-6788.

paj
fuente
4

Ya hay una gran lista disponible con todas las extensiones que romperán con SUPEE-6788

Más información aquí: https://docs.google.com/spreadsheets/d/1LHJL6D6xm3vD349DJsDF88FBI_6PZvx_u3FioC_1-rg/edit#gid=0

Gary Olderman
fuente
Tengo mucha curiosidad por saber cómo se recopiló esta lista.
mam08ixo
3
Fue de crowdsourcing; la fuente original es: docs.google.com/spreadsheets/d/…
Herman Slatman
Elimine la lista de la página anterior y, en su lugar, enlace a la fuente, que se mantiene actualizada: docs.google.com/spreadsheets/d/…
Aad Mathijssen
1
¿Hay algún contacto para informar sobre versiones actualizadas? Veo al menos 2-3 módulos que ya se actualizaron.
versedi
-1

La lista de variables permitidas, que se pueden procesar a través del filtro de contenido, es más grande de lo que se muestra en el PDF:

+ trans_email/ident_support/name
+ trans_email/ident_support/email
web/unsecure/base_url
web/secure/base_url
trans_email/ident_general/name
+ trans_email/ident_general/email
trans_email/ident_sales/name
trans_email/ident_sales/email
trans_email/ident_custom1/name
trans_email/ident_custom1/email
trans_email/ident_custom2/name
trans_email/ident_custom2/email
general/store_information/name
general/store_information/phone
general/store_information/address

(He agregado un +antes de las variables que no se describieron en el PDF)

Los bloques permitidos que se pueden procesar a través del filtro de contenido son:

core/template
catalog/product_new
Daniel van der Garde
fuente