Prestashop rilascia un fix per la vulnerabilità CVE-2023-30839 per Prestashop 8.0 e 1.7

È del 25 aprile la notizia della scoperta della falla di sicurezza CVE-2023-30839 con un alto livello di criticità che permette a qualsiasi utente loggato nel backoffice, indipendentemente dal ruolo e dai permessi assegnati, di eseguire qualsiasi tipo di query nel database senza nessun tipo di controllo.

A quanto riportato tutte le versioni di Prestashop sia nel branch 8.0 che nel branch 1.7 ne sono affette, noi siamo andati a verificare e anche la 1.6 soffre dello stesso bug.

Anche se di per sè la falla non sembra così grave in quanto è necessario disporre di un account per accedere al backoffice, in realtà espone un rischio alto perchè un hacker cercare di compromettere o ottenere l'accesso ad un account per poi eseguire query sql malevole nel database, cancellarne i dati o potenzialmente aprire altre backdoor.

Prestashop ha prontamente rilasciato le versioni patchate 8.0.4 e 1.7.8.9 e consiglia fortemente di aggiornare le proprie installazioni al più presto.

Per quanto riguarda le vecchie installazioni di Prestahop 1.6, essendo il progetto in End-of-life, non è stato rilasciato nessun aggiornamento e noi, avendo clienti che ancora lo utilizzano, abbiamo analizzato il file classes/db/Db.php e abbiamo riportato la patch fatta per le versioni successive modificandolo come segue.

Questo il codice originale contenuto nella funzione executeS() alle righe da 635 a 641

// This method must be used only with queries which display results
if (!preg_match('#^\s*\(?\s*(select|show|explain|describe|desc)\s#i', $sql)) {
    if (defined('_PS_MODE_DEV_') && _PS_MODE_DEV_) {
        throw new PrestaShopDatabaseException('Db->executeS() must be used only with select, show, explain or describe queries');
    }
    return $this->execute($sql, $use_cache);
}

va sostituito con il seguente

// This method must be used only with queries which display results
if (!preg_match('#^\s*\(?\s*(select|show|explain|describe|desc)\s#i', $sql)) {
    throw new PrestaShopDatabaseException('Db->executeS() must be used only with select, show, explain or describe queries');
}

Ti serve aiuto?
Chiudi

Contattaci per una consulenza gratuita

Ti offriamo un'analisi gratuita sulla velocità del tuo sito ed una consulenza sull'hosting.

* Campi richiesti