Vulnerabilità SQL in TI WooCommerce Wishlist: 100.000 siti a rischio, patch ancora mancante

Un Vulnerabilità Non Correttamente Correttata nel Plugin TI WooCommerce Wishlist

Qualche settimana fa è stata scoperta una vulnerabilità di iniezione SQL nel plugin TI WooCommerce Wishlist. Un’analisi più approfondita ha rivelato un ulteriore punto di ingresso che interessa oltre 100.000 installazioni attive. Nonostante la gravità del problema, il fornitore non ha ancora rilasciato una patch, rendendo la vulnerabilità pubblicamente nota. L’attacco può essere eseguito da utenti non autenticati, consentendo potenziali iniezioni SQL.

Versione Correttiva Non corretta
ID CVE CVE-2024-9156
ID WPVDB e95974f9-1f68-4181-89b0-3559d61cfa93
CVSSv3.1 7.5

Esplorazione della Vulnerabilità

Il problema è stato individuato nelle funzionalità di gestione della wishlist del plugin. Il codice interessato è il seguente:

Vulnerabilità SQL in TI WooCommerce Wishlist: 100.000 siti a rischio, patch ancora mancante

if ($lang) {
    if ($lang_default) {
        $languages = sprintf("'%s'", implode("', '", array($lang, $lang_default)));
    } else {
        $languages = "'".$lang."'";
    }
 
[...]
 
    $sql .= "LEFT JOIN {$table_translations} tr ON
    {$table}.product_id = tr.element_id AND tr.element_type = 'post_product'
LEFT JOIN {$table_translations} tr2 ON
    {$table}.variation_id != 0 AND {$table}.variation_id = tr2.element_id AND tr2.element_type = 'post_product_variation'
LEFT JOIN {$table_translations} t ON
    tr.trid = t.trid AND t.element_type = 'post_product' AND t.language_code IN ({$languages})
LEFT JOIN {$table_translations} t2 ON
    {$table}.variation_id != 0 AND tr2.trid = t2.trid AND t2.element_type = 'post_product_variation' AND t2.language_code IN ({$languages})
JOIN {$table_languages} l ON
    (
        t.language_code = l.code OR t2.language_code = l.code
    ) AND l.active = 1";
}
 
[...]
 
$results = $wpdb->get_results($sql, ARRAY_A);

Dopo l’utilizzo di implode con i parametri $lang e $lang_default si crea una condizione che può consentire a un aggressore di aggiungere istruzioni SQL aggiuntive alla query. Una prova di concetto sarà resa disponibile sull’entrata WPScan per questa problematica il 16 settembre 2024.

Nota: l’esploit richiede una condizione particolare per l’esecuzione completa, ma la vulnerabilità rappresenta comunque una minaccia significativa.

Perché è Importante

In assenza di una patch, gli utenti si trovano in una situazione di rischio. Un aggressore potrebbe ottenere l’accesso al database del sito web.

Stato Attuale

  • Si consiglia vivamente di disabilitare il plugin o di applicare una regola personalizzata del Web Application Firewall (WAF) per mitigare il rischio.
  • Abbiamo contattato WordPress.org poiché non era possibile contattare direttamente il fornitore.

Fonti

Articolo originale: PatchStack.

Approfondimento

La vulnerabilità è stata identificata nella gestione delle wishlist, un componente che consente agli utenti di salvare prodotti per un acquisto futuro. L’uso improprio della funzione implode ha introdotto un punto di ingresso per l’iniezione SQL, sfruttando la concatenazione di stringhe senza adeguata sanificazione.

Dati Principali

Parametro Valore
Versione del plugin 2.8.2
Installazioni attive +100.000
ID CVE CVE-2024-9156
CVSSv3.1 7.5
Tipo di attacco Iniezione SQL
Utenti colpiti Non autenticati

Possibili Conseguenze

  • Accesso non autorizzato al database, con possibilità di esfiltrazione di dati sensibili.
  • Modifica o cancellazione di contenuti, inclusi prodotti e varianti.
  • Compromissione della reputazione del sito e perdita di fiducia degli utenti.

Opinione

Il fornitore non ha ancora rilasciato una patch, il che aumenta l’urgenza di adottare misure di mitigazione temporanee. La comunità di sicurezza dovrebbe monitorare attentamente l’evoluzione della situazione.

Analisi Critica (dei Fatti)

La vulnerabilità è stata confermata da più fonti indipendenti, inclusi PatchStack e WPScan. L’assenza di una patch ufficiale indica una possibile lacuna nella gestione delle vulnerabilità del fornitore. L’impatto è elevato, ma l’esecuzione richiede condizioni specifiche, riducendo la probabilità di sfruttamento casuale.

Relazioni (con altri fatti)

La stessa tecnica di concatenazione di stringhe è stata osservata in altre vulnerabilità di iniezione SQL in plugin WordPress. L’uso di implode senza sanificazione è un pattern ricorrente in diversi casi di sicurezza.

Contesto (oggettivo)

WordPress è una piattaforma open source ampiamente utilizzata. I plugin esterni, se non mantenuti correttamente, possono introdurre rischi di sicurezza. La comunità di sicurezza di WordPress fornisce linee guida per la gestione delle vulnerabilità, ma la responsabilità finale ricade sul fornitore del plugin.

Domande Frequenti

Qual è la gravità della vulnerabilità?
La vulnerabilità ha un punteggio CVSSv3.1 di 7,5, classificata come alta.
Chi è colpito dalla vulnerabilità?
Gli utenti non autenticati che interagiscono con il plugin TI WooCommerce Wishlist su siti con installazioni attive.
Quali sono le misure di mitigazione consigliate?
Disabilitare il plugin o applicare una regola personalizzata del Web Application Firewall (WAF) per bloccare le richieste sospette.
Quando sarà disponibile una patch?
Al momento non è stata annunciata una data di rilascio; è consigliabile monitorare le comunicazioni del fornitore.
Dove posso trovare ulteriori informazioni?
Visitate la pagina originale su PatchStack e l’entrata WPScan per dettagli tecnici e aggiornamenti.

Commento all'articolo