Avviso di sicurezza Realtyna WPL
Se hai ricevuto una mia e-mail che rimanda a questa pagina, è perché il tuo sito web sembra
utilizzare una versione vulnerabile di Realtyna Organic IDX plugin + WPL Real Estate (il
plugin WordPress real-estate-listing-realtyna-wpl, di Realtyna). Potresti conoscerlo come
WPL o come plugin Organic IDX. Questa pagina spiega perché è importante e come
risolvere.
Questo avviso riguarda CVE-2026-13714, un caricamento arbitrario di file senza autenticazione che porta all’esecuzione di codice da remoto. In parole semplici: qualcuno che non ha effettuato l’accesso, che non ha bisogno di alcun account né di alcuna configurazione particolare sul tuo sito, può scrivere un file di script nell’area caricamenti del sito e poi eseguirlo. Significa controllo completo del codice lato server. Sono interessate le versioni dalla 4.0.0 alla 5.2.0; la correzione è nella 5.3.0, pubblicata il 30 giugno 2026. Le versioni precedenti alla 4.0.0 non contengono questa falla. Se utilizzi una versione interessata, aggiorna il plugin alla 5.3.0 o successiva appena puoi, poi leggi Se stavi usando una versione interessata.
Si tratta di una falla del plugin, non del core di WordPress. Un WordPress completamente aggiornato non ti protegge se questo plugin è a una versione interessata.
Questo messaggio è legittimo?
Sì. È un avviso in buona fede, secondo il principio della divulgazione responsabile, da parte di un ricercatore di sicurezza indipendente. Non ti chiedo denaro, password o accesso al tuo sito, e non ho tentato di entrarci, di caricare nulla né di sfruttare nulla.
Mi sono limitato a guardare file pubblicamente visibili che il tuo sito serve a ogni
visitatore (pubblici quanto la tua home page) e ad annotare il numero di versione che il
plugin pubblica nel suo file pubblico readme.txt. In particolare non ho inviato nulla
all’interfaccia di caricamento interessata. Nulla è stato caricato, testato o sfruttato, e
questa verifica non tocca i tuoi dati, la tua area di amministrazione né alcuna parte privata
del sito.
Se vuoi verificare chi sono, guarda i contatti in fondo a questa pagina e la pagina Informazioni.
Perché è importante
Il plugin include un’interfaccia di I/O per “applicazione mobile”, cioè un insieme di comandi che un client esterno può richiamare via web. Uno di questi comandi salva un file caricato con il nome scelto da chi lo carica, senza alcun controllo sul tipo di file. Un file con estensione di script finisce quindi come script nell’area caricamenti del sito, dove può essere richiesto via web ed eseguito dal server.
Due elementi impediscono che questo resti un problema teorico:
- L’interfaccia è attiva in un’installazione predefinita. Non serve abilitare alcuna impostazione né utilizzare alcuna funzione perché l’endpoint risponda.
- La coppia di chiavi che dovrebbe autenticare le chiamate è inizializzata allo stesso valore fisso in ogni installazione del plugin, e l’interfaccia di amministrazione la contrassegna come di sola lettura, così un operatore non potrebbe cambiarla nemmeno volendo. Un segreto identico ovunque e pubblico nel codice sorgente non è un segreto: quindi la barriera non è una vera barriera.
Nel complesso, ciò significa che un visitatore non autenticato può depositare codice eseguibile sul server. E una volta che del codice gira sul tuo server, può fare tutto ciò che può fare il tuo sito: leggere il database, creare account amministratore, modificare o sostituire pagine, inviare posta dal tuo dominio o installare una backdoor persistente.
Deliberatamente non pubblico il formato della richiesta, i nomi dei parametri né un esempio funzionante, e ti chiedo di non farlo nemmeno tu. La descrizione qui sopra dà la forma del problema, che è ciò che serve per decidere con quanta urgenza intervenire.
L’autorità che ha assegnato l’identificativo non ha pubblicato un punteggio CVSS per questo problema, quindi questa pagina non ne cita alcuno. Il problema non è presente nel catalogo delle vulnerabilità sfruttate note (KEV) della CISA e non ho prove che venga sfruttato in rete né che un sito specifico sia stato attaccato per questa via. Ciò che si può dire con chiarezza è cosa consente la falla: senza autenticazione, senza configurazione necessaria e con esito nell’esecuzione di codice.
C’è un ultimo aspetto da conoscere, perché fa sembrare l’aggiornamento facoltativo quando non lo è: il changelog del produttore per la 5.3.0 non menziona la sicurezza. Riporta “Removed deprecated mobile_application”. Proprio quella voce è la correzione: il sottosistema vulnerabile è stato rimosso del tutto. Chi scorre le note di rilascio in cerca di un avviso di sicurezza non lo troverà.
La buona notizia: aggiornare alla versione corretta chiude la falla, e l’aggiornamento è semplice.
Sono interessato?
Non devi credermi sulla parola riguardo alla versione che utilizzi.
Dall’area di amministrazione di WordPress (è la verifica che fa fede):
- Accedi alla bacheca di WordPress (di solito su
yourdomain.com/wp-admin). - Vai su Plugin e poi Plugin installati.
- Individua Realtyna Organic IDX plugin + WPL Real Estate e annota la versione mostrata sotto il nome.
Dal manifesto pubblico (senza accesso): apri
yourdomain.com/wp-content/plugins/real-estate-listing-realtyna-wpl/readme.txt nel browser.
La riga Stable tag: in alto indica la versione dichiarata dalla tua installazione.
Quel file viaggia dentro la cartella del plugin, quindi riflette ciò che è realmente
installato, ed è lo stesso file pubblico che ho letto io.
Poi applica questa regola:
- Dalla 4.0.0 alla 5.2.0: interessata, aggiorna subito.
- 5.3.0 o successiva: già corretta, per questo problema non c’è nulla da fare.
- Precedente alla 4.0.0: non interessata da questo problema. Il codice di caricamento non validato in quelle versioni non esiste proprio. Alcune pubblicazioni descrivono l’intervallo interessato come “tutte le versioni precedenti alla 5.3.0”; non è corretto, e se sei su una 3.x non hai motivo di trattare la cosa come un’emergenza. Resta comunque una versione molto vecchia, quindi aggiornare è sensato per altre ragioni.
Non leggere la versione dall’URL di una risorsa. Se guardi il sorgente della pagina e
vedi qualcosa come realtyna.min.js?ver=5.2.21, quel numero non è la versione del
plugin. Questo plugin non passa a WordPress la propria versione quando registra fogli di
stile e script, così WordPress inserisce al suo posto la versione del core di WordPress del
tuo sito. Abbiamo visto siti reali con il plugin 4.3.2 che servivano un ?ver= pari a
4.9.9, e siti che stampano 5.2.21, che è un numero di versione del core di WordPress
somigliante esattamente a una versione del plugin appena sotto la soglia della 5.3.0.
Leggerlo come versione del plugin può dirti l’esatto contrario della verità. Usa wp-admin,
oppure readme.txt.
Come risolvere
La via più sicura è aggiornare tramite WordPress stesso, facendo prima un backup:
- Fai un backup del sito (file e database) prima di apportare modifiche. La maggior parte degli hosting offre backup con un clic, oppure usa un plugin di backup per WordPress.
- Nell’amministrazione di WordPress, vai su Bacheca e poi Aggiornamenti, oppure Plugin e poi Plugin installati. Se compare un aggiornamento del plugin, installalo da qui.
- Se preferisci la riga di comando, WP-CLI fa la stessa cosa:
wp plugin update real-estate-listing-realtyna-wpl. - Se non compare alcun aggiornamento, puoi scaricare l’ultima versione direttamente dalla pagina del plugin nella directory WordPress.org, Realtyna Organic IDX plugin + WPL Real Estate, e aggiornare tramite Plugin, poi Aggiungi nuovo plugin, poi Carica plugin.
- Dopo l’aggiornamento, verifica il nuovo numero di versione (5.3.0 o successiva) con i passaggi qui sopra e controlla che il sito si carichi normalmente.
Se davvero non puoi aggiornare subito, la misura provvisoria è disattivare l’interfaccia di I/O del plugin nelle sue impostazioni, il che chiude la strada verso il comando di caricamento. Consideralo un rimedio temporaneo che ti fa guadagnare tempo, non un sostituto dell’aggiornamento: solo la 5.3.0 rimuove il codice vulnerabile.
Già che ci sei, vale la pena verificare che il core di WordPress e gli altri plugin siano aggiornati, perché lo stesso principio vale per tutti.
Se stavi usando una versione interessata
Poiché questo problema consente di caricare un file e poi eseguirlo, l’aggiornamento chiude la falla ma non annulla ciò che potrebbe già essere stato fatto attraverso di essa. Se il tuo sito ha usato una versione interessata mentre era raggiungibile da internet, conviene controllare. Tu (o il tuo webmaster) dovreste esaminare sul vostro sito:
- File di script nell’area caricamenti che non dovrebbero esserci. Cerca sotto
wp-content/uploads/file con estensione.php(o altre estensioni eseguibili) tra le immagini e i documenti degli immobili. I caricamenti legittimi di un annuncio immobiliare sono immagini, PDF e simili; un file.phpin mezzo non è normale. - File con date recenti o strane. Ordina per data di modifica e cerca qualsiasi cosa non riesci a spiegarti, comprese le cartelle di caricamento del plugin stesso.
- I tuoi account amministratore. In Utenti e poi Tutti gli utenti, filtra per Amministratore e rimuovi ogni account che non riconosci. Aggiungere un nuovo utente amministratore è un modo comune per mantenere l’accesso.
- Plugin e temi installati o modificati di recente. Cerca qualsiasi cosa tu non abbia installato e plugin con nomi generici o sconosciuti, perché un plugin o tema ostile è un modo comune per piazzare una backdoor.
- Altri segnali. Contenuti o pagine nuovi e inattesi, modifiche all’e-mail di amministrazione o alle impostazioni dell’URL del sito, attività pianificate sconosciute o segnalazioni di spam in uscita meritano un approfondimento.
Se trovi prove di accesso non autorizzato, tratta il sito come compromesso: rimuovi i file, cambia le credenziali (amministrazione WordPress, database e pannello di hosting) e valuta di ripristinare un backup affidabile precedente all’intrusione. Se la tua organizzazione ha un team di sicurezza informatica, coinvolgilo.
Voglio essere chiaro: non ho verificato nessuno di questi indizi sul tuo sito e non so se il tuo sito sia stato colpito. Questo elenco è qui perché tu possa controllare da solo. Un sito nell’intervallo di versioni interessato può anche essere già protetto in altro modo (un web application firewall, una correzione retroportata dall’hosting, o l’interfaccia di I/O disattivata); questo avviso è un’osservazione basata sulla versione, non l’affermazione che il tuo sito fosse attaccabile nel momento in cui l’ho guardato.
Cosa ho fatto e cosa non ho fatto
- Ho letto il
readme.txtpubblico del plugin e la tua home page, entrambi serviti dal tuo sito a ogni visitatore. - Non ho avuto accesso alla tua area di amministrazione WordPress, al tuo database o ad alcuna parte privata del sito.
- Non ho inviato nulla all’interfaccia di caricamento interessata. Nulla è stato caricato, nulla è stato testato o sfruttato. Quando la falla è essa stessa un endpoint di caricamento aperto, non toccarlo è tutta la differenza tra una divulgazione e un’intrusione.
- Il riscontro è quindi un’osservazione basata sulla versione, ed è riproducibile da te partendo dallo stesso file pubblico.
Non ho un webmaster / sono bloccato
Se non sei tu a gestire il sito, inoltra questa pagina a chi se ne occupa (il tuo sviluppatore web, la tua agenzia o il tuo hosting provider). Riconosceranno subito i passaggi descritti.
Se gestisci il sito da solo e ti blocchi, sono felice di indicarti la direzione giusta gratuitamente. Scrivimi usando i contatti qui sotto.
Contatti
Evan Harris, ricercatore di sicurezza
- E-mail: security@mail.mcpsec.dev
- X: @Evan__Harris
- GitHub: eharris128
- LinkedIn: Evan Harris
Mi occupo di segnalare questioni come questa unicamente per aiutare gli operatori a mettere in sicurezza i loro siti. Se preferisci non essere più contattato, basta dirmelo e lo rispetterò.
Riferimenti
Avvisi ufficiali e tracciamento
Produttore / plugin