Due falle critiche nei plugin WordPress possono portare al controllo completo dei siti
Vulnerabilità

Immagine illustrativa generata con AI

Due falle critiche nei plugin WordPress possono portare al controllo completo dei siti

Sono state segnalate due vulnerabilità critiche in plugin WordPress molto diffusi. La prima riguarda Forminator Forms , installato su oltre 600.000 siti ,

Testo generato da intelligenza artificiale, pubblicato senza revisione umana. Trasparenza IA

Forminator consente di caricare file PHP senza autenticazione

Sono state segnalate due vulnerabilità critiche in plugin WordPress molto diffusi. La prima riguarda Forminator Forms, installato su oltre 600.000 siti, ed è identificata come CVE-2026-15748.

La falla ha un punteggio CVSS 9,8/10,0 e interessa tutte le versioni fino alla 1.56.1 inclusa. Il problema è stato corretto nella versione 1.56.2, rilasciata il 31 luglio 2026.

La vulnerabilità, individuata dal ricercatore noto come “daroo”, permette a un attaccante non autenticato di caricare file arbitrari attraverso un modulo pubblico. Tra i file caricabili possono esserci script PHP, con la possibilità di arrivare all’esecuzione di codice da remoto.

Il sito deve però contenere un modulo con una combinazione precisa:

  • un campo File Upload;
  • un campo Select.

In assenza di questi due elementi, il percorso di attacco descritto non risulta applicabile.

Come viene aggirata la validazione degli upload

Il difetto si trova nella funzione handle_file_upload(), che gestisce il caricamento dei file. Il controllo sul tipo di file non verifica in modo sufficientemente robusto tutti i valori ricevuti dall’utente.

Il blocco delle estensioni pericolose utilizza infatti una corrispondenza esatta delle chiavi. Un aggressore può aggirare il controllo fornendo chiavi MIME alternative separate da pipe, inducendo il plugin ad accettare un file che dovrebbe essere rifiutato.

L’handler pubblico del modulo si affida inoltre alla configurazione del campo di caricamento. Questa configurazione può essere alterata attraverso un valore Select falsificato, senza che sia necessario disporre di un account.

In pratica, l’attaccante può inviare il modulo vulnerabile e depositare sul server un file PHP costruito appositamente. Se il server lo interpreta come codice, l’aggressore può eseguire comandi con i privilegi del processo web, modificare i contenuti, alterare la configurazione o creare nuovi accessi amministrativi.

La configurazione predefinita offre una protezione parziale: i file vengono normalmente collocati in una directory con un file .htaccess che impedisce l’esecuzione di PHP. Il rischio aumenta quando l’amministratore imposta una radice personalizzata per lo storage degli upload.

In questo scenario, il file .htaccess potrebbe non essere creato correttamente. L’helper WordPress necessario alla scrittura del file non è disponibile nel momento in cui viene gestita la richiesta. Una successiva richiesta diretta al file caricato può quindi portare il web server a eseguire il codice PHP controllato dall’attaccante.

User Profile Builder permette di autenticarsi come l’utente 1

La seconda vulnerabilità interessa User Profile Builder, presente su oltre 40.000 installazioni, ed è identificata come CVE-2026-15826.

La falla ha un punteggio CVSS 9,8, con vettore CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H. È stata corretta nella versione 3.16.5, rilasciata il 16 luglio 2026.

Le indicazioni sulle versioni vulnerabili non sono perfettamente uniformi: una descrizione segnala tutte le versioni precedenti, mentre la scheda NVD disponibile indica come vulnerabili le versioni fino alla 3.16.4 inclusa. In entrambi i casi, il riferimento operativo è l’aggiornamento alla 3.16.5.

Il difetto è un authentication bypass dovuto a type confusion nella funzione wppb_log_in_user().

Il ruolo delle username lunghe e di absint()

Lo sfruttamento riguarda la registrazione di una username lunga tra 61 e 70 caratteri. WordPress rifiuta la registrazione e restituisce un oggetto WP_Error.

Il plugin, però, applica prima absint() al risultato di wp_insert_user() e controlla solo in seguito se quel risultato sia un errore. La conversione forza l’oggetto a diventare l’intero 1, impedendo al controllo is_wp_error() di interrompere correttamente il flusso.

Il plugin finisce così per associare alla richiesta un nonce di autologin memorizzato tramite transient e collegato all’utente con ID 1. In una configurazione WordPress standard, quell’utente corrisponde normalmente all’amministratore principale.

Il requisito specifico è che nel plugin sia attiva l’impostazione Automatically Log In. Quando questa condizione è presente, un attaccante non autenticato può ottenere l’accesso come utente 1, bypassando il normale processo di autenticazione.

L’impatto può comprendere accesso amministrativo completo, modifica del sito, installazione di codice, alterazione degli account e presa di controllo dell’intera installazione WordPress.

Che cosa devono fare gli amministratori

L’intervento prioritario consiste nell’aggiornare entrambi i plugin:

  • Forminator Forms alla versione 1.56.2 o successiva;
  • User Profile Builder alla versione 3.16.5 o successiva.

Dopo l’aggiornamento è opportuno verificare che non siano rimaste copie obsolete, installazioni di test o ambienti secondari esposti a Internet.

Per Forminator, occorre censire i moduli che combinano campi File Upload e Select, quindi rivedere la configurazione Custom File Upload Storage root. È inoltre consigliabile controllare i file caricati di recente, con particolare attenzione a file PHP inattesi, estensioni anomale e richieste web indirizzate direttamente alle directory di upload.

I log possono aiutare a individuare:

  • richieste POST verso moduli pubblici;
  • upload di file PHP o con doppie estensioni;
  • accessi successivi ai file appena caricati;
  • richieste anomale verso directory di storage personalizzate.

Per User Profile Builder va verificato lo stato di Automatically Log In, da mantenere disattivato quando non è indispensabile. Gli amministratori dovrebbero inoltre controllare nuovi account, modifiche ai profili, accessi associati all’utente ID 1, nonce sospetti e cambiamenti recenti a plugin, temi e configurazioni.

Per CVE-2026-15826 non sono disponibili, nei dati esaminati, informazioni che confermino l’inserimento nel catalogo CISA KEV, né una data di inserimento o una scadenza. Anche per CVE-2026-15748 non risultano disponibili stato KEV, vettore CVSS ufficiale NVD o ulteriori metadati NVD.

Le due falle sono state rilevate il 17 agosto 2026. Entrambe sono sfruttabili senza autenticazione e, quando i rispettivi prerequisiti sono presenti, possono condurre alla compromissione completa del sito.

Leggi anche

Fonti

Questo articolo è una rielaborazione originale basata sulle fonti seguenti.

CVE trattate in questo articolo

Argomenti correlatifallecritichepluginwordpresspossonoportarecontrollocompleto
Torna alla home