Sono state individuate 3 vulnerabilità in Zen Cart V1.5.4.
Probabilmente sono soggette alle medesime vulnerabilità anche le versioni precedenti.

Le vulnerabilità sono state segnalate da Tim Coen di curesec.com e prima della pubblicazione sono state valutate e risolte ove ritenuto necessario dal team di Zen Cart

Ecco le tre vulnerabilità:

1) Recupero di informazioni

Il popup per le immagini aggiuntive (index.php?main_page=popup_image_additional) si aspetta un parametro GET per products_image_large_additional.

Utilizzando un URL modificato, un malintenzionato può verificare (mediante il codice html restituito dalla pagina) se uno specifico file esiste sul server.

Ad esempio:

http://localhost/zen-cart-v1.5.4-12302014/index.php?main_page=popup_image_additional&pID=26&pic=1&products_image_large_add itional=../../../../../../../etc/passwd

http://localhost/zen-cart-v1.5.4-12302014/index.php?main_page=popup_image_additional&pID=26&pic=1&products_image_large_add itional=../../../../../../../etc/passwd2

Nel caso in cui il file passwd esista nel path indicato, il codice html della pagina sarà:

rapporto-di-sicurezza-cureseccom_01

Viceversa se il file passwd2 non esiste, verrà mostrata la canonica immagine di default corrispondente ai files (immagini dei prodotti) non presenti.

Il report non fornisce alcuna indicazione in merito alla possibilità che mediante questa vulnerabilità sia possibile accedere al contenuto dei files, pertanto la vulnerabilità è stata classificata come BASSA / NON CRITICA.

Le versioni 1.5.5 e 1.6.0 conterranno il fix di questa vulnerabilità.

Per le versioni v1.5.4 e precedenti è disponibile una patch che consiste in un singolo file da caricare nella cartella /includes/extra_configures/ Non sono necessari ulteriori interventi.

Create un nuovo file in includes/extra_configures/security_patch_v154_and_older.php con il seguente contenuto

rapporto-di-sicurezza-cureseccom_2

Ricordatevi di controllare che non ci siano righe vuote all’inizio del file prima di <?php altrimenti si verificheranno degli errori.

2) Upload arbitrario di file (Solo in Admin)

In diverse sezioni del backend di amministrazione è possibile fare l’upload di files. Tipicamente immagini ma anche altri files (mp3, pdf, ecc…) possono essere caricati. Il codice per l’upload non contiene un filtro sul tipo di file che è possibile caricare, pertanto potrebbero essere caricati file php o comunque ‘pericolosi’ da parte di un amministratore del sito.

Per sfruttare questa vulnerabilità è necessario che il malintenzionato sia in possesso delle credenziali di accesso all’area di amministrazione. Inoltre le pagine che consentono l’upload sono già protette da un token XSRF. Per questi motivi la vulnerabilità è stata classificata come BASSA / NON CRITICA

Per i motivi indicati il team non ritiene necessario correggere questa vulnerabilità per le versioni attuali. Nella versione 1.6.0 saranno rivalutate le classi per l’upload.

3) Esecuzione di codice (Solo in Admin)

Dal backend di amministrazione è possibile modificare e includere files php in altre pagine tramite il ‘define page editor’ (define_pages_editor.php?define_it=4&action=new_page)

Questo editor è pensato allo scopo di consentire ai gestori del sito di aggiungere testo, immagini e codice html personalizzati a certe pagine del sito.

L’esecuzione di codice php eventualmente inserito in queste pagine è di norma impedita mediante l’uso di file .htaccess. Tuttavia è possibile che il server sia configurato in modo tale da non consentire l’uso di questi file .htaccess, pertanto in tal caso un malintenzionato potrebbe aggiungere codice php maligno a queste pagine.

Come per la vulnerabilità precedente, il malintenzionato deve essere in possesso delle credenziali di amministrazione del sito per poter sfruttare questa vulnerabilità. Pertanto questa vulnerabilità non sarà risolta nelle versioni attuali.

Si richiamano tutti gli utenti all’applicazione delle basilari norme di corretta conservazione delle credenziali di accesso al backend, in particolare quelle del Super User. Si ricorda inoltre che è possibile definire ruoli di amministrazione con permessi limitati (accessi a solo determinate funzioni / pagine), pertanto si raccomanda di usare questa funzionalità nel caso si renda necessario fornire gli accessi di amministrazione a terzi.

Inoltre si ricorda che Zen Cart fornisce log dettagliati degli accessi e delle attività degli admin.
È buona norma controllare periodicamente questi log.