Temi vulnerabili

Vulnerabilità Ocean Extra senza account: la patch 2.6.1 precedeva l’avviso

Ocean Extra: falla senza account, patch nella 2.6.1

Il 14 ottobre 2026 Wordfence ha reso pubblica una vulnerabilità di Ocean Extra, il plugin companion del tema OceanWP: fino alla versione 2.6.0 un visitatore senza account poteva far eseguire shortcode arbitrari (CVE-2026-86803). La patch, la versione 2.6.1, è disponibile dal 10 settembre, più di un mese prima dell’annuncio. Se gestisci un sito OceanWP, ecco come verificare la tua versione, valutare la tua esposizione reale e controllare che non ci siano stati abusi.

Cosa è successo

La vulnerabilità è stata scoperta il 28 giugno 2026 da un ricercatore che si firma hashiramasenju333, secondo la cronologia della scheda CVE pubblicata da Wordfence, autorità di numerazione (CNA) per questa CVE. Wordfence ha avvisato OceanWP l’8 settembre alle 14:56 (ora di Parigi). Due giorni dopo, il 10 settembre alle 11:35, la versione 2.6.1 di Ocean Extra veniva pubblicata su wordpress.org con una sola riga nel registro delle modifiche, «Potential vulnerability patched», che rimanda a un rapporto di Wordfence dell’8 settembre.

Per cinque settimane non è trapelato altro. Il 14 ottobre alle 18:43 Wordfence ha pubblicato la sua scheda, intitolata «Ocean Extra <= 2.6.0 - Unauthenticated Arbitrary Shortcode Execution via 'oceanwp_library' Shortcode Template». Patchstack e WPScan l’hanno inserita lo stesso giorno, e la scheda CVE e poi il database NVD del NIST sono seguiti la mattina del 15 ottobre. Lo stesso giorno l’arricchimento pubblicato dalla CISA (programma Vulnrichment) indicava uno sfruttamento «none» ma un attacco «automatable», cioè automatizzabile su larga scala.

Cronologia 2026: 28 giugno, scoperta della vulnerabilità da parte di hashiramasenju333; 8 settembre alle 14:56, Wordfence avvisa OceanWP; 10 settembre alle 11:35, pubblicazione di Ocean Extra 2.6.1 con la dicitura «Potential vulnerability patched»; 13 ottobre, Ocean Extra 2.6.3; 14 ottobre alle 18:43, pubblicazione da parte di Wordfence, senza account, CVSS 6,5; 15 ottobre alle 7:30, scheda CVE e NVD online, sfruttamento «none» secondo la CISA.
Cronologia di CVE-2026-86803, ora di Parigi. La versione corretta esisteva 34 giorni prima della pubblicazione della vulnerabilità.

Al 19 ottobre nessuna fonte riconosciuta documenta attacchi: né Wordfence, né Patchstack, né WPScan, né il catalogo KEV della CISA. Nemmeno il sito tedesco Dr. Web, che ha trattato la vulnerabilità il 15 ottobre, segnalava attacchi noti.

Perché una patch precedente all’annuncio cambia le cose

Questo scarto di 34 giorni è voluto: i ricercatori lasciano agli utenti il tempo di aggiornare prima di pubblicare i dettagli. Ha tre conseguenze pratiche.

  • I siti con gli aggiornamenti automatici dei plugin attivi sono protetti dal 10 o dall’11 settembre, senza aver dovuto fare nulla.
  • Durante quelle cinque settimane la dicitura «Potential vulnerability patched» non diceva né la gravità né l’assenza di autenticazione: un amministratore che seleziona a mano i propri aggiornamenti non aveva motivo di affrettarsi. I database delle vulnerabilità, e quindi gli strumenti di avviso che li usano, non conoscevano ancora la vulnerabilità.
  • Dal 14 ottobre la situazione è capovolta: la scheda pubblica e la patch, consultabile sul repository Subversion di wordpress.org, indicano con precisione dove cercare. I siti rimasti alla 2.6.0 o precedenti sono ormai i bersagli evidenti.

Chi è interessato

Ocean Extra è il plugin gratuito che aggiunge al tema OceanWP la libreria di modelli «My Library», impostazioni per pagina, widget, l’importazione di demo e diversi shortcode. Conta oltre 400.000 installazioni attive (wordpress.org). Sono interessate tutte le versioni fino alla 2.6.0 inclusa; la 2.6.1 corregge la vulnerabilità. La versione più recente al 19 ottobre è la 2.6.3, pubblicata il 13 ottobre.

ElementoCVE-2026-86803
PluginOcean Extra (wordpress.org, slug ocean-extra)
Versioni interessatefino alla 2.6.0 inclusa
Corretta in2.6.1 (10 settembre 2026); ultima versione 2.6.3
Account richiestoNessuno
TipoEsecuzione di shortcode arbitrari (CWE-94, iniezione di codice)
CVSS 3.16,5, media (Wordfence, ripreso da NVD e WPScan); 5,3 secondo Patchstack
SfruttamentoNessuno documentato al 19 ottobre 2026
Scopertahashiramasenju333, tramite Wordfence
Carta d’identità della vulnerabilità (fonti: scheda CVE, NVD, Patchstack, WPScan, registro delle modifiche di Ocean Extra).

Le etichette divergono. Patchstack classifica la vulnerabilità come «esecuzione di codice arbitrario» pur assegnandole una priorità bassa, e alcuni aggregatori parlano di esecuzione di codice da remoto. La descrizione di Wordfence è più precisa: vengono eseguiti shortcode, non codice PHP scelto dall’attaccante. La gravità reale dipende quindi dagli shortcode installati sul tuo sito.

Non tutte le installazioni sono esposte allo stesso modo. Secondo la patch, è in causa solo il caso di un modello «My Library» creato con l’editor a blocchi; i modelli realizzati con Elementor, Beaver Builder o SiteOrigin seguono un altro percorso del codice. Aggiorna in ogni caso.

Un punto di attenzione per il seguito: WPScan e Wordfence elencano anche, dal 23 settembre, una XSS memorizzata sfruttabile da un Collaboratore e corretta nella 2.6.2, mentre il 1° ottobre Patchstack ha ritirato l’identificativo CVE che le aveva assegnato (CVE-2026-94684), definendola un falso positivo. Puntare alla 2.6.3 risolve la questione.

Come funzionava la vulnerabilità

Uno shortcode è un codice tra parentesi quadre, come , che WordPress sostituisce con un contenuto. È uno strumento da amministratore: WordPress non interpreta gli shortcode scritti dai visitatori, per esempio in un commento. Ocean Extra fornisce lo shortcode [oceanwp_library id="…"], che mostra un modello della libreria «My Library» (header, footer, blocco riutilizzato).

Wordfence descrive la causa in una frase: un’azione «non convalida correttamente un valore prima di chiamare do_shortcode». La patch pubblicata sul repository di wordpress.org è più eloquente. Fino alla 2.6.0, per un modello creato con l’editor a blocchi, Ocean Extra calcolava prima i blocchi (funzione do_blocks), poi passava tutto il risultato a do_shortcode. Ma alcuni blocchi sono dinamici: il loro contenuto viene prodotto al momento della visualizzazione e può contenere testo proveniente dall’esterno. Il commento aggiunto nella patch cita come esempio i commenti. Un visitatore che inseriva uno shortcode in un testo del genere lo vedeva interpretato al secondo passaggio, con i permessi del sito.

Schema in quattro passaggi: 1, lo shortcode oceanwp_library mostra un modello di My Library; 2, do_blocks calcola i blocchi dinamici, il cui rendering può contenere un testo di un visitatore come un commento; 3, do_shortcode passa sul risultato e interpreta uno shortcode inserito in quel testo; patch 2.6.1, gli shortcode vengono elaborati prima dei blocchi, solo il contenuto salvato del modello passa per do_shortcode.
Meccanismo di CVE-2026-86803, secondo la patch della versione 2.6.1 (nostra lettura del codice; Wordfence non ha pubblicato uno scenario dettagliato).

La versione 2.6.1 inverte l’ordine: gli shortcode del modello salvato vengono elaborati per primi, poi i blocchi vengono resi, e il risultato non ripassa più per do_shortcode. Ciò che un attaccante può ottenere dipende dagli shortcode disponibili: mostrare un contenuto che non dovrebbe esserlo, attivare una funzione di un altro plugin, iniettare contenuto nella pagina. È ciò che spiega il punteggio CVSS: impatto basso su riservatezza e integrità, nessuno sulla disponibilità, ma nessuna autenticazione né interazione richiesta.

È la seconda esecuzione di shortcode senza account in Ocean Extra, dopo CVE-2025-3472 (versione 2.4.6, aprile 2025, che richiedeva WooCommerce attivo), e la seconda vulnerabilità legata allo shortcode oceanwp_library dopo una XSS da Collaboratore ad agosto 2025 (CVE-2025-9499). Trovi lo storico completo delle vulnerabilità di OceanWP e Ocean Extra.

Indicatori e verifiche sul tuo sito

Nessun avviso pubblicato fornisce indicatori di compromissione (indirizzo IP, file, utente o richiesta tipo). I controlli qui sotto servono a misurare la tua esposizione e a individuare tracce plausibili; non sostituiscono una diagnosi completa. Comincia dalla versione installata:

wp plugin list --name=ocean-extra --fields=name,version,status,update
wp plugin verify-checksums ocean-extra

Poi elenca i modelli della libreria e gli shortcode registrati sul sito, per sapere cosa avrebbe potuto richiamare un attaccante:

wp post list --post_type=oceanwp_library --fields=ID,post_title,post_status,post_modified
wp eval 'echo implode( "\n", array_keys( $GLOBALS["shortcode_tags"] ) );'

Cerca quindi i commenti recenti che contengono una parentesi quadra aperta, possibile segno di un tentativo (adatta il prefisso wp_ delle tue tabelle):

wp db query "SELECT comment_ID, comment_date, comment_author_IP, comment_approved, LEFT(comment_content, 120) FROM wp_comments WHERE comment_content LIKE '%[%' AND comment_date > '2026-06-01' ORDER BY comment_date DESC"

Infine, i controlli abituali in caso di dubbio:

  • wp user list --role=administrator --fields=ID,user_login,user_email,user_registered: nessun amministratore sconosciuto;
  • wp core verify-checksums: file del core intatti;
  • find wp-content -name "*.php" -mtime -45: file PHP modificati da inizio settembre, da giustificare uno per uno;
  • nei log del server, richieste ripetute verso le pagine che mostrano un modello «My Library», o invii di commenti a raffica da uno stesso indirizzo.

Cosa fare adesso

  • Aggiorna Ocean Extra alla 2.6.3, l’ultima versione al 19 ottobre (come minimo alla 2.6.1), da Bacheca → Aggiornamenti o con wp plugin update ocean-extra.
  • Se il plugin è installato ma inutilizzato, disattivalo e poi eliminalo: i suoi file restano attaccabili finché sono sul server.
  • Se non puoi aggiornare subito, togli temporaneamente dalla visualizzazione i modelli «My Library» creati con l’editor a blocchi che contengono blocchi dinamici, e metti in moderazione i nuovi commenti.
  • Se le verifiche rivelano un abuso (amministratore sconosciuto, file PHP sospetto), cambia le password degli amministratori, rinnova le chiavi di sicurezza di wp-config.php, revoca le password per le applicazioni, poi ripristina un backup pulito. La guida alla pulizia di un sito WordPress violato descrive i passaggi.

Ridurre l’esposizione la prossima volta

Questo caso illustra una situazione frequente: la patch esiste prima che qualcuno sappia che è urgente. La difesa migliore è quindi applicare gli aggiornamenti di sicurezza senza aspettare l’annuncio. Gli aggiornamenti automatici dei plugin avrebbero protetto questi siti da settembre. Per i siti in cui preferisci approvare ogni aggiornamento, un monitoraggio delle vulnerabilità prende il testimone al momento della pubblicazione, e una visione d’insieme degli aggiornamenti in sospeso evita che un sito dimenticato resti indietro per settimane. Limita anche ruoli e account allo stretto necessario (principio del privilegio minimo), conserva backup testati e valuta un firewall applicativo con patch virtuali per coprire l’intervallo tra annuncio e aggiornamento.

WP Masquerade Pro può aiutare in una parte di questo lavoro, senza sostituirlo. I suoi avvisi di vulnerabilità confrontano ogni giorno le versioni installate dei plugin e dei temi di wordpress.org, tra cui Ocean Extra, con il database pubblico WPVulnerability.net, e avvisano via e-mail. Non avrebbero segnalato nulla prima del 14 ottobre: finché una vulnerabilità non è pubblicata, nessun database la conosce. Il registro delle attività degli amministratori fa emergere un account creato o un plugin installato in modo inatteso, dalla sua attivazione e solo per ciò che passa da WordPress, e il controllo di integrità verifica solo i file del core, non quelli di Ocean Extra. Gli aggiornamenti in sospeso e i siti vulnerabili di tutti i tuoi siti compaiono nella tua area membri. Il plugin avvisa: non corregge nulla e non è un firewall.

Da ricordare

  • CVE-2026-86803: esecuzione di shortcode senza account in Ocean Extra fino alla 2.6.0, CVSS 6,5 secondo Wordfence.
  • Corretta nella 2.6.1 il 10 settembre 2026, resa pubblica il 14 ottobre: i siti aggiornati automaticamente erano già protetti.
  • Sono in causa solo i modelli «My Library» creati con l’editor a blocchi, secondo la patch.
  • Nessuno sfruttamento documentato al 19 ottobre; aggiorna alla 2.6.3 e verifica amministratori e file recenti.

Fonti

  • CVE.org: CVE-2026-86803, Ocean Extra 2.6.0 e versioni precedenti (15 ottobre 2026) (link esterno, si apre in una nuova scheda)
  • WordPress.org Plugin Trac: changeset 3689650, ocean-extra/includes/panel/library-shortcode.php (10 settembre 2026) (link esterno, si apre in una nuova scheda)
  • CVE.org: CVE-2026-94684, identificativo rifiutato da Patchstack (1° ottobre 2026) (link esterno, si apre in una nuova scheda)
  • NVD: CVE-2025-3472, Ocean Extra 2.4.6 e versioni precedenti (22 aprile 2025) (link esterno, si apre in una nuova scheda)

Altre fonti consultate: altre schede CVE, pagine ufficiali dei produttori, articoli della stampa specializzata, database di Wordfence, WPScan e Patchstack.

Temi vulnerabili8 min

Falla in Blocksy Companion: venditore Dokan senza account, patch 2.1.59

Una vulnerabilità di Blocksy Companion permette a un visitatore senza account di diventare venditore Dokan e di essere connesso automaticamente. Sono esposti solo i negozi Dokan;…

Sicurezza WordPress, senza rumore

Un’email quando conta: nuovi attacchi osservati, aggiornamenti del plugin e guide pratiche. Niente spam, disiscrizione con un clic.

Inizia gratis, passa a Pro quando sei pronto

La versione gratuita nasconde già WordPress e sposta la pagina di login. Pro aggiunge alias, autenticazione a due fattori e monitoraggio.