Me gustaría parchear una tienda de Magento con SUPEE-9767. La documentación para SUPEE-9767 me dice que desactive la configuración de Symlinks antes de aplicar el parche:
Antes de aplicar el parche o actualizar a la última versión, asegúrese de deshabilitar la configuración de Symlinks ... La configuración, si está habilitada, anulará la configuración del archivo de configuración y su cambio requerirá una modificación directa de la base de datos.
Pero uso modman para administrar módulos y dado que algunos de los módulos están usando archivos de plantilla, la configuración de Symlinks está habilitada de acuerdo con la sugerencia en README de modman. ¿Es seguro dejar habilitada la configuración de enlaces simbólicos como una de las publicaciones en el parche de seguridad SUPEE-9767 - Posibles problemas? sugiere (¿Todavía no puedo comentar las publicaciones porque soy un usuario nuevo)?
Los usuarios que usan modman para administrar los módulos Magento 1.x deben asegurarse de no deshabilitar los enlaces simbólicos, ya que esto deshabilitará los módulos modman.
Si dejo habilitada la configuración de enlaces simbólicos, ¿la tienda no estaría expuesta a APPSEC-1281: ejecución remota de código a través de enlaces simbólicos , una amenaza de seguridad que este parche debe solucionar?
¿Hay otras formas de usar modman con archivos de plantilla después de este parche? (Conozco la opción "versión parcheada de Mage / Core / Block / Template.php" que menciona README de modman, pero parchear un archivo core parece peligroso).
fuente
Respuestas:
Aquí hay algunas aclaraciones sobre este cambio:
Primero lea esta explicación de Peter O'Callaghan, esto le dará una gran comprensión: https://peterocallaghan.co.uk/2017/06/appsec-1281-dangerous-symlinks/
También otra lectura interesante es esta publicación de Max Chadwick https://maxchadwick.xyz/blog/what-allow-symlinks-actually-does
Esta modificación se trata realmente de llamar contenido descargable (como imágenes) a través de directivas de plantilla.
El problema relacionado con los enlaces simbólicos solo se puede explotar con acceso de administrador y Magento también agregó más protección en la carga de imágenes.
Tenga en cuenta que son algunas protecciones contra la forma conocida de explotarlo, además de la configuración en sí.
Entonces, si comprende el riesgo involucrado, puede dejar los enlaces simbólicos habilitados.
Si necesita habilitarlos para una nueva instalación, puede ejecutar:
fuente
El problema no son los enlaces simbólicos, el problema son las rutas que alcanzan niveles como
../../../../../media/tmp/hahaha.png
. Si me equivoco en esto, por favor, ilumíneme. El "arreglo" se tituló "Permitir enlaces simbólicos" y habilitar esto deshabilita la verificación que se implementó usandorealpath()
. En mi opinión, una solución que es igual de segura, más eficiente y compatible con los enlaces simbólicos es usarstrpos($path, '..')
y / o verificar querealpath()
coincida con ciertos directorios riesgosos comomedia
yvar
. Si se implementa de esta manera, no necesitaría ser configurable, siempre podría habilitarse y no romper miles de tiendas.En cualquier caso, el usuario de su servidor web no debería tener acceso para escribir archivos en los directorios del código fuente (como lo hace Magento Connect ...), por lo que es otra forma de evitar que el código malicioso se escriba en algún lugar y se ejecute como una plantilla de bloque.
Por lo tanto, este ataque a los enlaces simbólicos está mal dirigido y existe una mejor solución. De hecho, proporcioné uno hace más de un año e incluso hay un enlace a él en el modman github README.
fuente
Si en el extra de su archivo de compositor configura la estrategia magento-deploys para copiar, sus archivos se copiarán de la carpeta del proveedor en lugar de los enlaces simbólicos.
Luego puede modificar su core_config_data para establecer el valor de dev / template / allow_symlink en 0
Recurso para información
fuente
Puede anular los cambios de SUPEE-9767 de diferentes maneras, consulte:
¿Cómo habilitar los enlaces simbólicos después de la instalación de SUPEE-9767 V2?
fuente