Security Patches per v1.5.4 - Novembre 2015‏

Rilasciamo alcune patch da applicare ai vostri store Zen Cart 1.5.4 e precedenti versioni per risolvere alcuni problemi di sicurezza.

 

1. Problema con il file ajax.php - solo versione 1.5.4 - Livello di rischio: ALTO

In Zen Cart v.1.5.4 il file /ajax.php è soggetto ad una vulnerabilità che può essere usata per compromettere il server, al verificarsi di circostanze ben definite.

SOLUZIONE
La patch è semplice: sostituire il file /ajax.php con quello allegato qui di seguito, oppure applicare manualmente le modifiche (qui potete trovare il file diff https://github.com/zencart/zc-v1-series/pull/652/files ).
Il team americano ringrazia High Tech Bridge per la segnalazione del problema.

File corretto: /ajax.php

 


 

Di seguito includiamo alcune patch che risolvono delle vulnerabilità caratterizzate da livello di rischio inferiore.
Anche in questo caso è possibile sostituire i files coinvolti con quelli allegati, tuttavia rispetto al caso precedente, ci sono maggiori possibilità che abbiate modificato questi file per delle vostre personalizzazioni o anche che li abbia modificati qualche plugin.
Per questo motivo è opportuno sincerarsi se vi siano delle modifiche al codice originale e in tal caso procedere effettuando un merge.

 

 


 

2. Rischio XSS dovuto alla mancanza di sanificazione del campo commenti nel checkout - Versioni: tutte fino alla 1.5.4 - Livello di rischio: MEDIO

In tutte le versioni di Zen Cart, fino alla 1.5.4 inclusa, è presente un rischio di XSS, relativo al campo dei commenti dell’ordine.
XSS (Cross Site Scripting) è una sigla che si usa per indicare quelle situazioni in cui un utente può aggiungere codice eseguibile o javascript ad un campo, ad esempio, di un form e questo causi problemi quando poi il contenuto di quel campo viene mostrato a video.

SOLUZIONE
La patch per questo problema è una semplice modifica di una riga in /includes/modules/pages/checkout_confirmation/header_php.php, come mostrato in questo file diff: XSS fix (https://github.com/zencart/zc-v1-series/pull/563/files). Il file header_php.php checkout_confirmation qui distribuito è solo per versioni dalla 1.3.9 sino alla 1.5.4. Eventuali versioni precedenti dovrebbero essere modificate manualmente utilizzando il file diff indicato.
Grazie a Trustwave Security per aver evidenziato questo problema.

File corretto: /includes/modules/pages/checkout_confirmation/header_php.php

 

3.Vedi password nel campo di input quando il cliente sbaglia il login -  Livello di rischio: BASSO

Il problema è rappresentato dal fatto che inserendo una password errata nel processo di login, questa (la password errata) viene mostrata in chiaro nel messaggio di errore in risposta.

SOLUZIONE
La correzione è una semplice modifica al file /includes/functions/html_output.php, come mostrato in questo file diff: https://github.com/zencart/zc-v1-series/pull/563/files Per la versione 1.5.4 si può sostituire il file presente in  /includes/functions/html_output.php con quello qui allegato html_output.php Ma se sono state fatte personalizzazioni manuali o mediante plugin, meglio utilizzare il link file diff sopra indicato per trovare solo la parte di codice da sostituire.
Grazie a Trustwave Security per aver evidenziato questo problema.

File corretto: /includes/functions/html_output.php

 

4. XSS Relativo al pannello di admin - Livello di rischio: BASSO grazie alle protezioni CSRF già in essere..

Trustwave Security riferisce che alcuni campi di modifica in amministrazione sono a rischio XSS, una patch è in preparazione, ma è importante notare che nessuna di queste iniezioni può essere sfruttata senza avere le credenziali di accesso di admin. Quindi i problemi potrebbero essere causati solo da persone che hanno già il permesso di accedere al pannello di amministrazione e intenzionalmente volessero immettere codice dannoso nei campi interessati. Il pannello è già protetto contro vulnerabilità CSRF così che questi problemi XSS non possano essere sfruttati da terzi.

Un ulteriore avviso sarà pubblicato quando la patch sarà disponibile.