Avviso di sicurezza Premium Packages (WordPress Download Manager)
Se avete ricevuto un’email da parte mia che vi indirizza a questa pagina, è perché il vostro
sito sembra utilizzare una versione vulnerabile di Premium Packages (il plugin WordPress
wpdm-premium-packages, un componente aggiuntivo di WordPress Download Manager di Shahjada /
wpdownloadmanager.com). Questa pagina spiega perché è importante e come correggere il problema.
Questo avviso riguarda CVE-2026-15348, un bypass dell’autenticazione non autenticato nel gestore dei download del plugin che potrebbe consentire a un visitatore non autorizzato di accedere come cliente o come altro account non amministratore sul vostro negozio. Interessa le versioni dalla 4.7.0 alla 7.0.4 ed è corretta nella 7.0.5. Se utilizzate una versione interessata, aggiornate Premium Packages alla 7.0.5 o successiva.
Una precisazione sull’urgenza, perché questo avviso si colloca tra gli altri che invio: questo problema non richiede alcun accesso (è del tutto non autenticato), quindi aggiornare tempestivamente è opportuno. Allo stesso tempo, si tratta di una falla di accesso agli account che riguarda i proprietari di ordini non amministratori, non di una presa di controllo del server o di un account amministratore completo, e non vi è alcuna indicazione che venga sfruttata (non figura nel catalogo delle Known Exploited Vulnerabilities di CISA, e non sono a conoscenza di alcuna segnalazione di sfruttamento). Questa pagina è una segnalazione precauzionale, non un rapporto di incidente. L’aggiornamento chiude il problema, e non è richiesta alcuna risposta di emergenza.
Questa è una falla di un plugin, non del nucleo di WordPress. Un WordPress pienamente aggiornato non vi protegge se il plugin Premium Packages stesso utilizza una versione interessata.
Questo messaggio è legittimo?
Sì. Si tratta di un avviso in buona fede, secondo il principio della divulgazione responsabile, da parte di un ricercatore di sicurezza indipendente. Non vi chiedo denaro, password o accesso al vostro sito, e non ho tentato di introdurmi in esso, di caricare alcunché o di sfruttare alcunché.
Tutto ciò che ho fatto è stato esaminare file pubblicamente visibili che il vostro sito
fornisce a ogni visitatore (allo stesso modo in cui la vostra homepage è pubblica) e annotare
il numero di versione che il plugin Premium Packages pubblica nel suo file pubblico readme.txt.
In particolare non ho toccato l’endpoint vulnerabile, e nulla di questo controllo tocca i
vostri dati, la vostra area di amministrazione o alcuna parte privata del vostro sito (maggiori
dettagli sotto Cosa ho fatto e cosa non ho fatto più avanti).
Se desiderate verificare chi sono, consultate i recapiti in fondo a questa pagina e la pagina Informazioni.
Perché è importante
Premium Packages è un componente aggiuntivo di WordPress Download Manager (circa 2.000
installazioni attive) che permette a un sito di vendere prodotti digitali e download. Nelle
versioni interessate, il gestore download() del plugin viene eseguito su una richiesta non
autenticata. Esso decodifica un parametro URL controllato dall’aggressore (wpdmppdl) che è
soltanto codificato in base64, senza firma e senza nonce a dimostrare che la richiesta sia
autentica, e poi emette i cookie di accesso di WordPress dopo un controllo del “dominio” i cui
entrambi i lati sono forniti dall’aggressore (quindi il controllo è banalmente soddisfatto).
Questa classe di errore è un bypass dell’autenticazione: un percorso secondario consegna una
sessione autenticata senza mai verificare chi effettua la richiesta.
L’effetto pratico è che un visitatore non autenticato potrebbe accedere come qualsiasi utente non amministratore che sia proprietario di un ordine sul negozio: un account cliente, iscritto, autore, editore o gestore del negozio. Per essere chiari sul limite massimo di ciò: non concede l’accesso come amministratore, e di per sé non consegna a un aggressore il vostro server. Si tratta della presa di controllo di account di proprietari di ordini non amministratori.
Al problema non è stato assegnato un punteggio CVSS dall’autorità competente, quindi non gli attribuirò un numero; qualitativamente è grave perché non richiede alcun accesso, ma limitato perché l’accesso che produce è di livello non amministratore. Se la mia email ha citato questo problema, significa che la versione segnalata dal vostro sito rientra nell’intervallo interessato. Non ho verificato se il vostro sito in particolare sia sfruttabile, ma solo che segnala una versione interessata.
La buona notizia: l’aggiornamento alla versione corretta chiude il problema, e l’aggiornamento è semplice.
Sono interessato? Come verificare la vostra versione
Questa è l’unica parte di questo avviso che differisce dagli altri che invio, perché i campi di versione pubblici di questo plugin sono inaffidabili, quindi vale la pena leggerla con attenzione.
Il controllo autorevole è l’area di amministrazione di WordPress. Essa mostra la vera versione installata:
- Accedete alla vostra bacheca di WordPress (di solito all’indirizzo
yourdomain.com/wp-admin). - Andate su Plugin poi Plugin installati.
- Cercate Premium Packages e annotate la versione indicata sotto il suo nome.
Applicate poi questa regola, tenendo presente che le versioni si confrontano numericamente, non alfabeticamente:
- Qualsiasi versione inferiore alla 7.0.5: interessata, aggiornate subito.
- 7.0.5 o successiva: già corretta.
Perché non leggere semplicemente i file pubblici? Perché per questo plugin possono trarvi in inganno:
- La riga “Stable tag:” del file pubblico
readme.txtdel plugin è in ritardo rispetto al suo stesso codice. Un sito che utilizza l’ultima release vulnerabile (7.0.4), per esempio, pubblicaStable tag: 7.0.3. Quindi il readme pubblico è un segnale affidabile di “corretto” solo quando riporta 7.0.5 o superiore. Un numero inferiore non vi indica in modo affidabile la vostra release esatta; trattate qualsiasi valore inferiore alla 7.0.5 come “verificate wp-admin e aggiornate”. - Non giudicate la vostra versione dal numero
?ver=presente negli URL degli script o dei fogli di stile del plugin. Il plugin ha congelato la sua costante di versione interna a7.0.4nella release di sicurezza 7.0.5, quindi un sito 7.0.5 corretto serve comunque asset contrassegnati come?ver=7.0.4; e il?ver=del file CSS è in realtà la versione del nucleo di WordPress, non quella del plugin. Nessuno dei due riflette la vera versione del plugin. Usate wp-admin.
Come aggiornare
Il percorso più sicuro è aggiornare tramite WordPress stesso, effettuando prima un backup:
- Eseguite il backup del vostro sito (file e database) prima di apportare modifiche. La maggior parte dei provider di hosting offre backup con un clic, oppure usate un plugin di backup per WordPress.
- Nell’amministrazione di WordPress, andate su Bacheca poi Aggiornamenti, oppure Plugin poi Plugin installati. Se un aggiornamento di Premium Packages è elencato, installatelo da qui.
- Se preferite la riga di comando, WP-CLI fa la stessa cosa:
wp plugin update wpdm-premium-packages. - Se nessun aggiornamento compare, potete scaricare l’ultima versione direttamente dalla pagina del plugin nella directory WordPress.org, Premium Packages, e aggiornare tramite Plugin poi Aggiungi nuovo plugin poi Carica plugin.
- Dopo l’aggiornamento, confermate il nuovo numero di versione (7.0.5 o successiva) in Plugin poi Plugin installati seguendo i passaggi sopra, e verificate che i vostri download e le funzioni del negozio funzionino normalmente.
Già che ci siete, vale la pena confermare che il nucleo di WordPress, WordPress Download Manager e i vostri altri plugin siano aggiornati, poiché lo stesso principio vale per tutti.
Dopo l’aggiornamento
L’aggiornamento alla 7.0.5 o successiva chiude il problema, e per la maggior parte dei siti questo è tutto il lavoro. Non vi è alcuna indicazione che questa falla sia stata sfruttata, quindi non è richiesta alcuna risposta di emergenza: non dovete trattare il vostro sito come compromesso, metterlo offline o forzare la reimpostazione delle password.
Poiché la falla potrebbe consentire a un visitatore non autorizzato di agire su un account cliente o su un altro account non amministratore, un controllo di routine è ragionevole: date un’occhiata alla recente attività degli account clienti e degli ordini alla ricerca di qualcosa di non familiare, per esempio ordini o modifiche agli account che un cliente non ha effettuato, o accessi che non coincidono con la normale attività. Trattatelo come ordinaria manutenzione, del tipo che un negozio svolge periodicamente, non come risposta a un incidente. Se qualcosa dovesse risultare anomalo, valgono i passaggi consueti (reimpostate la password di quel account ed esaminate l’attività insieme al cliente), e potete contattarmi per qualsiasi domanda.
Cosa ho fatto e cosa non ho fatto
Per essere pienamente trasparente riguardo al controllo dietro la mia email: ho letto soltanto
file pubblici che il vostro sito fornisce già a ogni visitatore, nello specifico il file pubblico
readme.txt del plugin e la vostra homepage. Non ho avuto accesso alla vostra area di
amministrazione di WordPress, al vostro database o ad alcuna parte privata del sito. In
particolare, non ho toccato l’endpoint vulnerabile, e non ho testato né sfruttato alcunché.
Si tratta di un’osservazione basata sulla versione: il vostro sito segnala una versione nell’intervallo interessato. Un sito in quell’intervallo potrebbe essere già protetto con altri mezzi (per esempio un web application firewall, o una correzione retroportata), quindi questo avviso non è un’affermazione che il vostro sito fosse sfruttabile nel momento in cui ho effettuato il controllo.
Non ho un webmaster / sono bloccato
Se non siete la persona che gestisce il sito, inoltrate questa pagina a chi lo fa (il vostro sviluppatore web, la vostra agenzia o il vostro provider di hosting). Riconosceranno rapidamente i passaggi sopra.
Se gestite il sito da soli e vi bloccate, sarò lieto di aiutarvi a orientarvi nella direzione giusta senza alcun costo. Contattatemi usando i recapiti sottostanti.
Contatti
Evan Harris, Ricercatore di sicurezza
- Email: security@mail.mcpsec.dev
- X: @Evan__Harris
- GitHub: eharris128
- LinkedIn: Evan Harris
Contatto gli operatori riguardo a problemi come questo unicamente per aiutarli a mettere in sicurezza i loro siti. Se preferite non essere contattati di nuovo, ditemelo e rispetterò la vostra richiesta.
Riferimenti
Avvisi ufficiali e tracciamento
Fornitore / plugin