Vulnerabilità ad alta priorità corrette nel plugin Uncode Core

amministratore

Introduzione

Il 7 maggio 2024, WP-Firewall, un'organizzazione leader nella consulenza sulla sicurezza, ha pubblicato un rapporto dettagliato sulle vulnerabilità critiche scoperte nel plugin Uncode Core. Se sei un utente Uncode, è fondamentale aggiornare il tuo plugin core almeno alla versione 2.8.9 per proteggere il tuo sito WordPress da potenziali attacchi. Questo post approfondirà le specifiche di queste vulnerabilità, le loro implicazioni e i passaggi intrapresi per mitigarle.

Informazioni sul plugin Uncode Core

Il plugin Uncode Core, sviluppato da Undsgn, è un componente essenziale del tema Uncode, un tema premium molto popolare per i siti WooCommerce, con oltre 110.000 vendite su ThemeForest. Il tema Uncode è rinomato per il suo design pixel-perfect, che lo rende ideale per vari siti web, tra cui portfolio, agenzie, freelance, blog e negozi online.

Le vulnerabilità della sicurezza

I ricercatori di sicurezza di WP-Firewall hanno identificato due vulnerabilità significative nel plugin Uncode Core:

1. Eliminazione arbitraria autenticata di file e directory

Descrizione: Questa vulnerabilità consente a qualsiasi utente autenticato con almeno un ruolo di Subscriber di eliminare directory arbitrarie sul server. Il problema risiede nella funzione `delete_download`, che non dispone di controlli appropriati di autorizzazione e nonce. Questa funzione è associata all'azione `wp_ajax_uncodefont_delete_download`, rendendo possibile agli utenti autenticati di sfruttarla.

Dettagli tecnici:

funzione delete_download() {
se (isset($_REQUEST['font_family'])) {
$font_family = $_REQUEST['font_family'];
$font_dir = trailingslashit($this->font_directory).$font_family;
$fontkit_zip = $font_dir.'.zip';

se (@file_exists($fontkit_zip)) {
se (!@unlink($fontkit_zip)) {
echo json_encode(array(
'errore' => sprintf( esc_html__( 'Impossibile eliminare @fontface kit zip %1$s.', 'uncode-core' ), $fontkit_zip )
));
morire();
}
}

// Impossibile eliminare la directory, perché unzip_file, che l'ha creata, usa WP_Filesystem. Quindi usiamo WP_Filesystem per eliminarla.
$this->setup_wp_filesystem();

filesystem globale $wp;
se (isset($wp_filesystem)) {
$delete_dir = $wp_filesystem->delete($font_dir, true);
se (!$delete_dir) {
echo json_encode(array('errore' => $delete_dir['errore']));
morire();
}
}

echo json_encode(array('success' => "Download eliminato"));
}
morire();
}
include/font-system/font-system.php, funzione delete_download()

La funzione costruisce la variabile `$font_dir` dall'input dell'utente (`$_REQUEST['font_family']`) senza sanificazione, consentendo l'attraversamento delle directory e l'eliminazione arbitraria.

2. Escalation dei privilegi autenticati

Descrizione: Questa vulnerabilità consente a qualsiasi utente autenticato con un minimo di ruolo di Subscriber di aumentare i propri privilegi a qualsiasi ruolo sul sito WordPress. Ciò è dovuto a un aggiornamento non sicuro di WP Option nella funzione `save_option`, che non dispone di controlli di autorizzazione appropriati.

Dettagli tecnici:

funzione pubblica save_option() {
se ( isset( $_POST['nonce'] ) && wp_verify_nonce( $_POST['nonce'], 'impostazioni-uncode-core-nonce' ) ) {
se ( isset( $_POST['valore'] ) && $_POST['valore'] && isset( $_POST['option_id'] ) && $_POST['option_id'] ) {
$autoload = isset( $_POST['autoload'] ) && $_POST['autoload'] === 'vero' ? vero : falso;
update_option( $_POST['option_id'], $_POST['value'], $autoload );
---------- TAGLIA QUI ----------
include/core-settings/class-core-settings.php, funzione save_option()

Il nonce utilizzato in questa funzione può essere recuperato da qualsiasi utente autenticato con accesso all'area wp-admin, consentendo aggiornamenti non autorizzati alle opzioni e l'escalation dei privilegi.

La toppa

Per risolvere queste vulnerabilità, gli sviluppatori del plugin Uncode Core hanno rilasciato la versione 2.8.9, che include le seguenti correzioni:

Eliminazione arbitraria autenticata di file e directory: Implementati i controlli dei permessi e del nonce nella funzione `delete_download`.

Escalation dei privilegi autenticata: Sono stati applicati controlli di autorizzazione e nonce nella funzione `save_option` e aggiunto un controllo di whitelist per le chiavi di opzione.

Conclusione

Garantire la sicurezza del tuo sito WordPress implica rimanere aggiornato con le ultime patch e avvisi di sicurezza. Le vulnerabilità nel plugin Uncode Core sottolineano l'importanza di implementare controlli appropriati di autorizzazione e nonce per qualsiasi azione sensibile. Sanifica sempre gli input degli utenti e limita l'ambito di ciò che può essere aggiornato o eliminato tramite azioni degli utenti.

Per informazioni più dettagliate, puoi leggere l'avviso di sicurezza completo sul sito web di WP-Firewall Qui.

Rimani al sicuro

WP-Firewall offre varie soluzioni per la sicurezza di WordPress, tra cui auditing dei plugin, monitoraggio e risposta alle vulnerabilità e servizi di sicurezza WordPress gestiti. Se sei uno sviluppatore di plugin o un ricercatore di sicurezza, prendi in considerazione l'idea di unirti a WP-Firewall.


wordpress security update banner

Ricevi WP Security Weekly gratuitamente 👋
Iscriviti ora
!!

Iscriviti per ricevere gli aggiornamenti sulla sicurezza di WordPress nella tua casella di posta, ogni settimana.

Non facciamo spam! Leggi il nostro politica sulla riservatezza per maggiori informazioni.