Una vulnerabilità di sicurezza critica nel popolare plugin Forminator Forms per WordPress può consentire ad attaccanti non autenticati di caricare file PHP eseguibili e potenzialmente prendere il controllo completo dei siti web vulnerabili. Tracciata come CVE-2026-15748, la falla di caricamento di file arbitrari ha un punteggio CVSS di 9.8 e interessa le versioni di Forminator fino alla 1.56.1 inclusa.
Forminator è un costruttore di moduli drag-and-drop ampiamente distribuito, utilizzato per moduli di contatto, moduli di pagamento, sondaggi, quiz e caricamenti di file. Il plugin ha più di 600.000 installazioni attive. SecurityWeek ha stimato che oltre 300.000 siti stavano ancora eseguendo versioni vulnerabili quando il problema è stato divulgato pubblicamente, creando una superficie di attacco potenzialmente significativa.
La vulnerabilità è particolarmente pericolosa perché l’esploit non richiede autenticazione o interazione con l’utente. Con la configurazione richiesta del modulo, un attaccante può manipolare la gestione delle sottomissioni di Forminator, bypassare le restrizioni sui tipi di file pericolosi e caricare codice PHP sul server web. Se il file caricato può essere eseguito, l’attacco può progredire direttamente verso l’esecuzione di codice remoto e il compromesso completo del sito WordPress.
Analisi CVE-2026-15748
La vulnerabilità origina dalla funzionalità handle_file_upload() di Forminator e deriva da una combinazione di convalida insufficiente del tipo di file e gestione non sicura dei dati di configurazione del modulo controllati dall’attaccante. Piuttosto che fare affidamento su un singolo fallimento di convalida, un attaccante concatena diverse debolezze nel processo di invio del modulo per trasformare dati controllati dall’utente ordinari in una configurazione di caricamento falsificata.
Lo sfruttamento riuscito richiede un modulo Forminator pubblicato contenente sia un campo di caricamento dei file sia un campo di selezione. Wordfence ha scoperto che un campo di selezione può essere abusato come veicolo per dati annidati appositamente creati perché il sanitizzatore di richieste generico di Forminator consente a certi valori annidati di raggiungere le fasi di elaborazione successive.
Un attaccante può manipolare questi dati in modo che il campo di selezione si mascheri effettivamente come un record di caricamento. Il record falsificato può includere valori controllati dall’attaccante che definiscono il nome del campo, il tipo e la configurazione. Quando il modulo contiene anche un vero campo di caricamento dei file, la routine di elaborazione del caricamento di Forminator opera sulla voce falsificata e passa la configurazione fornita dall’attaccante al gestore del caricamento come se fosse legittima.
La seconda parte dell’exploit prende di mira la blocklist di estensioni pericolose di Forminator. Il plugin tenta di rimuovere tipi di file come PHP, JavaScript, file eseguibili, script shell e altri formati potenzialmente pericolosi. Tuttavia, l’implementazione vulnerabile esegue un confronto esatto delle chiavi.
Wordfence ha dimostrato che un attaccante può fornire un’espressione di estensione e tipo MIME alternativa che non è riconosciuta dalla blocklist ma è ancora interpretata da WordPress come corrispondente a un file .php. Questo permette a un payload PHP eseguibile di superare il processo di convalida dei file vulnerabile e di essere scritto sul server.
CVE-2026-15748 interessa tutte le versioni di Forminator Forms fino alla 1.56.1 inclusa. Il problema è categorizzato come CWE-434, Caricamento senza Restrizioni di File con Tipo Pericoloso, e il suo vettore CVSS riflette uno sfruttamento basato su rete con bassa complessità, nessun privilegio, nessuna interazione con l’utente, e potenzialmente alto impatto su riservatezza, integrità e disponibilità.
C’è una condizione aggiuntiva che determina se il caricamento arbitrario di file può diventare immediatamente esecuzione di codice remoto. Nella configurazione predefinita di Forminator, i file caricati sono archiviati in una directory contenente un file .htaccess progettato per prevenire l’esecuzione di PHP.
Tuttavia, gli amministratori possono configurare una radice di archiviazione personalizzata per il caricamento dei file. Wordfence ha scoperto che questa directory personalizzata può essere creata senza la stessa protezione .htaccess perché può essere inizializzata prima durante una richiesta frontend in cui l’helper di WordPress responsabile per la creazione del file di protezione non è disponibile. In tale configurazione, semplicemente richiedendo il file PHP caricato in modo malevolo si può causare al server web di eseguire il codice dell’attaccante.
I dettagli più importanti per CVE-2026-15748 riguardano quindi sia la progettazione del modulo vulnerabile che la configurazione dell’archiviazione dei caricamenti. Un sito con il plugin interessato non è automaticamente sfruttabile attraverso la catena RCE dimostrata a meno che non siano presenti i campi richiesti di Caricamento File e Selezione, mentre l’archiviazione personalizzata dei caricamenti può aumentare significativamente le conseguenze di un caricamento di file riuscito.
Una volta ottenuta l’esecuzione di PHP, un attaccante potrebbe distribuire una web shell e utilizzarla per prendere il controllo dell’installazione di WordPress. A seconda dei privilegi del server e dell’architettura di hosting, questo potrebbe consentire la modifica dei contenuti del sito, il furto di credenziali, l’accesso al database, la distribuzione di malware, la creazione di account amministratore, la persistenza o un’ulteriore movimento nell’ambiente di hosting sottostante. Wordfence avverte specificamente che le vulnerabilità di caricamento di file arbitrari di questo tipo possono portare al completo compromesso del sito.
La vulnerabilità è stata scoperta dal ricercatore di sicurezza daroo e segnalata attraverso il Programma Bug Bounty di Wordfence. Wordfence ha ricevuto la sottomissione iniziale l’11 luglio 2026, ha validato il problema e confermato il PoC CVE-2026-15748 il 14 luglio, e ha fornito dettagli tecnici completi al team di sviluppo di Forminator lo stesso giorno.
Lo sviluppatore ha riconosciuto la vulnerabilità il 20 luglio e ha inviato una patch per la revisione. La versione 1.56.2 di Forminator, contenente la correzione completa di sicurezza, è stata rilasciata il 31 luglio 2026. La vulnerabilità è stata dettagliata pubblicamente da Wordfence a metà agosto.
Al momento della divulgazione, non c’erano segnalazioni di sfruttamento attivo in natura. Le informazioni di arricchimento delle vulnerabilità di CISA hanno anche elencato lo sfruttamento come “nessuno” a partire dal 18 agosto, sebbene lo classifichi come automatizzabile e l’impatto tecnico potenziale come totale.
Attualmente non ci sono IOCs specifici per la campagna CVE-2026-15748 come indirizzi IP, domini o hash di malware controllati dagli attaccanti pubblicati nella ricerca citata. Le organizzazioni dovrebbero quindi concentrarsi su evidenze comportamentali, caricamenti sospetti, file PHP che compaiono nelle directory di caricamento e esecuzione imprevista sul lato server piuttosto che fare affidamento esclusivamente su indicatori statici.
Mitigazione CVE-2026-15748
Gli amministratori del sito dovrebbero immediatamente aggiornare Forminator Forms alla versione 1.56.2 o successiva. La versione patchata è stata pubblicata il 31 luglio 2026 e affronta completamente la debolezza del caricamento di file arbitrari descritta da Wordfence.
La rilevazione di CVE-2026-15748 dovrebbe iniziare identificando le installazioni di WordPress con esecuzione di Forminator e determinando la versione esatta del plugin. I siti che utilizzano la versione 1.56.1 o precedente dovrebbero essere trattati come vulnerabili e prioritizzati per l’applicazione delle patch, in particolare se i moduli pubblici includono sia campi di Selezione sia di Caricamento File.
Gli amministratori dovrebbero anche ispezionare la configurazione di archiviazione dei file di Forminator. I siti che utilizzano una radice di caricamento personalizzata meritano particolare attenzione perché la directory potrebbe non contenere la protezione .htaccess che normalmente previene l’esecuzione di file PHP caricati.
Per rilevare tentativi di sfruttamento di CVE-2026-15748, i team di sicurezza dovrebbero esaminare la telemetria di WordPress, del server web, del WAF e del file-system per attività come:
- File eseguibili imprevisti come .php, .phtml o altri nelle directory di caricamento di Forminator
- Sottomissioni di moduli contenenti dati annidati insoliti associati a campi di selezione
- Schemi di mime type o estensione sospetti inviati alla funzionalità di caricamento file
- Richieste HTTP dirette a file PHP recentemente caricati
- Nuovi o modificati account amministratore di WordPress in seguito a invii di moduli sospetti
- Connessioni in uscita inaspettate avviate dal processo PHP o del server web
- Web shell, codice PHP offuscato o file sconosciuti che appaiono sotto le directory di contenuti di WordPress
- Modifiche inspiegabili a temi, plugin, file di configurazione o record di database
Poiché questi comportamenti possono avere cause legittime o non correlate, dovrebbero essere correlati con informazioni sulla versione di Forminator e attività di invio moduli sospetta prima di essere trattati come conferme di un compromesso.
Le organizzazioni dovrebbero anche esaminare i registri storici antecedenti all’aggiornamento. L’installazione della versione 1.56.2 previene lo sfruttamento futuro ma non rimuove i file dannosi o i meccanismi di persistenza che potrebbero essere già stati posizionati sul server.
Se si scoprono prove di sfruttamento, i rispondenti all’incidente dovrebbero preservare i log web e delle applicazioni, identificare i payload caricati, ispezionare il filesystem per web shell e persistenza, rivedere gli account amministratori e le credenziali API, ruotare i segreti esposti di WordPress e del database, e verificare l’integrità dei file core di WordPress, plugin e temi.
Wordfence afferma che la protezione integrata del caricamento di file dannosi nel suo firewall blocca i tentativi che prendono di mira questa vulnerabilità sia per utenti paganti che gratuiti. Tuttavia, un firewall applicativo web dovrebbe essere considerato uno strato difensivo aggiuntivo e non un sostituto per l’aggiornamento del plugin vulnerabile.
Considerando la gravità di 9.8 della vulnerabilità, la mancanza di requisiti di autenticazione, lo sfruttamento potenzialmente automatizzabile e il gran numero di installazioni, la mitigazione della CVE-2026-15748 dovrebbe essere trattata come un’azione di alta priorità per le organizzazioni che gestiscono siti web WordPress rivolti a Internet.
FAQ
Cos’è CVE-2026-15748 e come funziona?
CVE-2026-15748 è una vulnerabilità critica di caricamento arbitrario di file nel plugin Forminator Forms di WordPress. Un attaccante non autenticato può manipolare un modulo contenente sia un campo di selezione che di caricamento file, iniettare dati di configurazione di caricamento falsificati, bypassare il filtraggio delle estensioni pericolose del plugin e caricare un file PHP eseguibile. In configurazioni di archiviazione vulnerabili, la richiesta di quel file può risultare in esecuzione di codice remoto.
Quando è stata scoperta per la prima volta CVE-2026-15748?
Wordfence ha ricevuto la sottomissione iniziale della vulnerabilità del ricercatore l’11 luglio 2026 e ha validato l’exploit il 14 luglio. Il team di Forminator ha ricevuto la divulgazione il 14 luglio, l’ha riconosciuta il 20 luglio e ha rilasciato la versione completamente patchata di Forminator, 1.56.2, il 31 luglio 2026.
Qual è l’impatto di CVE-2026-15748 sui sistemi?
Lo sfruttamento riuscito può consentire a un attaccante senza account sul sito web di caricare codice PHP eseguibile. Se il server permette l’esecuzione dalla directory di caricamento interessata, l’attaccante può ottenere esecuzione di codice remoto e potenzialmente prendere il controllo completo del sito WordPress.
CVE-2026-15748 può ancora colpirmi nel 2026?
Sì. Qualsiasi sito web che esegue ancora Forminator 1.56.1 o una versione precedente può rimanere vulnerabile se è presente la configurazione del modulo richiesta. SecurityWeek ha stimato che più di 300.000 installazioni erano potenzialmente esposte quando la vulnerabilità è stata divulgata pubblicamente.
Come posso proteggermi da CVE-2026-15748?
Aggiorna immediatamente Forminator Forms alla versione 1.56.2 o successiva. Gli amministratori dovrebbero anche rivedere le directory di caricamento personalizzate, ispezionare i registri storici del modulo e del server web, cercare file eseguibili imprevisti e investigare attività sospette avvenute prima che il plugin fosse patchato.