La vunerabilità

Dopo alcuni giorni di dubbi, è stato annunciato ufficialmente che esiste un bug di Zend Framework, piattaforma di sviluppo su cui è basato Magento, potenzialmente molto rischioso. Il bug può infatti permettere a chi dovesse sfruttarlo di leggere qualsiasi file sul un server web in cui sia attiva la funzionalità Zend XMLRPC. Per tutti i file si intende proprio tutti, compresi file che contengono password, file di configurazione e in alcuni casi anche i database se risiedono nella stessa macchina in cui gira Magento.

La Soluzione

Sono state prontamente rilasciati aggiornamenti o patch per le varie versioni di Magento che consigliamo a tutti i nostri clienti e utenti di Magento in generale di applicare il prima possibile!
La soluzione è stata implementata per tutte le edizioni Magento.
Nella tabelle di seguito vi invitiamo a controllare quale versione/piattaforma utilizzate:

Magento Enterprise Edition

  • Come soluzione migliore, raccomandiamo che tutti i merchant che usano l’Enterprise Edition eseguano al più presto l’aggiornamento all’ultima release disponibile (v1.12.0.2) per avere tutti gli ultimi aggiornamenti di sicurezza e funzionalità.
  • In funzione della vostra versione, potete trovare di seguito la soluzione appropriata:
LA VOSTRA ATTUALE VERSIONE SOLUZIONE CONSIGLIATA
EE 1.12.0.0+ Upgrade all’ultima release (Andate in Downloads > Magento Enterprise Edition > Release – è richiesto il login all’account magento)
EE 1.8.0.0 – 1.11.X.X Applicate la patch per Zend Security Upgrades (Andate in Downloads > Magento Enterprise Edition > Patches & Support – è richiesto il login all’account magento)
Versione precedenti alla EE 1.8.0.0 Implementate il workaround (vedi istruzioni più in basso)

Magento Professional Edition

  • Per tutte le versioni di Professional Edition, applicate la Zend Security Upgrades patch (Andate in Downloads > Magento Professional Edition > Patches & Support –  è richiesto il login all’account magento)

Magento Community Edition

  • Come soluzione migliore, raccomandiamo che tutti i merchant che usano Community Edition di aggiornare all’ultima release disponibile (v1.7.0.2) per avere tutti gli aggiornamenti di sicurezza e funzionalità.
  • In funzione della vostra versione, potete trovare di seguito la soluzione appropriata:
LA VOSTRA ATTUALE VERSIONE SOLUZIONE CONSIGLIATA
CE 1.7.0.0+ Aggiornate all’ultima release
CE 1.5.0.0 – 1.6.X.X Applicate questa patch
CE 1.4.2.0 Applicate questa patch
CE 1.4.0.0 – 1.4.1.1 Applicate questa patch
Versioni precedenti alla CE 1.4.0.0 Implementate il workaround (vedi istruzioni più in basso)

Magento Go

I clienti Magento Go non devono effettuare alcuna operazione. Tutti i fix sono applicati automaticamente al backend.

Instruzioni su come applicare la Patch

  1. Andate nella www-root della vostra installazione Magento con un terminale (es: cd /home/mystore/public_html)
  2. Eseguite: wget –O patch_name.patch
  3. Scaricate la patch dal link appropriato che trovate sopra in questo articolo in base alla vostra versione eseguendo da un terminale Unix il comando seguente: wget –O patch_name.patch
  4. Applicate la patch con il comando seguente: patch -p0 < patch_name.patch

NOTA: se magento gira su più di un web server la patch deve essere applicata singolarmente a tutti i server.

Workaround

Se non vi è possibile applicare la patch immediatamente, potete seguire le istruzioni seguenti per disattivare temporaneamente la funzionalità RPC che contiene la vulnerabilità.
NOTA IMPORTANTE: tutte le implementazioni che si basano sulla funzionalità XMLRPC API non funzioneranno più dopo l’implementazione di questo workaround..

  • 1. Sul server web Magento, andate nella cartella www-root dove si trovano i file app Magento.
  • 2. Nella www-root, andate in /app/code/core/Mage/Api/controllers.
  • 3. Aprite il file XmlrpcController.php per la modifica.
  • 4. Commentate o cancellate il corpo del metodo: public indexAction()
  • 5. Salvate il file.

Note tecniche

Gli utenti che già utilizzano sistemi IDS potrebbero monitorare l’interfaccia RPC per vedere se ci sono attacchi in corso. Come di consueto, consigliamo di mantenere aggiornate le installazioni ogni volta che sia possibile.

Come già segnalato da alcuni utenti, i fix implementati dal team Magento nella CE 1.7.0.2 e nella EE 1.12.0.2 sono diversi dai fix forniti nelle patch. In qdiffer from the fix provided in the patches. In queste ultime due versioni infatti, è stato deciso di non modificare direttamente le librerie Zend, ma di fare un override dei metodi vulnerabili all’interno del codice Magento aggiungendo le due nuove classi:

  • app/code/core/Zend/XmlRpc/Response.php
  • app/code/core/Zend/XmlRpc/Request.php

Il team Magento ha optato per questa soluzione per mantenere coerenza con la gestione dello Zend Framework versione 1.11.1 su cui si basa Magento 1.x. Magento sta pianificando l’aggiornamento dello Zend Framework nelle prossime release di Magento.

 

Fonti:
http://www.magentocommerce.com/blog/comments/important-security-update-zend-platform-vulnerability/
http://www.magentocommerce.com/blog/comments/update-zend-framework-vulnerability-security-update/