{"id":55204,"date":"2026-07-21T07:05:01","date_gmt":"2026-07-21T06:05:01","guid":{"rendered":"https:\/\/edoardoguzzi.com\/"},"modified":"2026-07-21T07:23:15","modified_gmt":"2026-07-21T06:23:15","slug":"wp2shell-wordpress-kritische-sicherheitslucke-cve-2026-63030","status":"publish","type":"post","link":"https:\/\/edoardoguzzi.com\/de\/wp2shell-wordpress-vulnerabilita-critica-cve-2026-63030\/","title":{"rendered":"wp2shell, die kritische Sicherheitsl\u00fccke in WordPress: Betroffene Versionen, technische Sch\u00e4den und was Sie sofort unternehmen sollten"},"content":{"rendered":"<p class=\"wp-block-paragraph\">\u00c8 venerd\u00ec 17 luglio 2026. WordPress pubblica tre aggiornamenti di sicurezza e, insieme alle nuove versioni, attiva gli aggiornamenti automatici forzati sui siti interessati.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Quando un progetto come WordPress decide di spingere una patch in questo modo, di solito non sta correggendo il colore sbagliato di un pulsante.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">L&#8217;annuncio ufficiale parla di&nbsp;<strong>un problema critico e uno ad alta gravit\u00e0<\/strong>. WordPress raccomanda l&#8217;aggiornamento immediato e conferma di aver attivato gli aggiornamenti forzati proprio a causa della severit\u00e0.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Le vulnerabilit\u00e0 sono due:&nbsp;<strong>CVE-2026-60137<\/strong>, una SQL injection nel core, e&nbsp;<strong>CVE-2026-63030<\/strong>, un problema nella gestione delle richieste batch della REST API. Combinate sulle versioni pi\u00f9 recenti, formano la catena chiamata&nbsp;<strong>wp2shell<\/strong>&nbsp;e possono portare all&#8217;esecuzione di codice da remoto senza autenticazione.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tradotto: su un&#8217;installazione vulnerabile l&#8217;attaccante non deve prima indovinare una password, convincere un amministratore a cliccare un link o aspettare che sia installato un plugin specifico. Il problema \u00e8 nel core di WordPress.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Questa volta l&#8217;aggiornamento non va messo nella lista delle cose da fare \u201cquando c&#8217;\u00e8 un attimo\u201d.<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Quali versioni di WordPress sono vulnerabili a wp2shell<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Le due falle non interessano esattamente le stesse versioni. La distinzione \u00e8 importante, perch\u00e9 WordPress 6.8 \u00e8 esposto alla SQL injection, ma non alla catena completa che porta alla RCE.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Versione installata<\/th><th>SQL injection<\/th><th>Catena RCE wp2shell<\/th><th>Versione corretta<\/th><\/tr><\/thead><tbody><tr><td>6.8.0 &#8211; 6.8.5<\/td><td>S\u00ec<\/td><td>No<\/td><td>6.8.6<\/td><\/tr><tr><td>6.9.0 &#8211; 6.9.4<\/td><td>S\u00ec<\/td><td>S\u00ec<\/td><td>6.9.5<\/td><\/tr><tr><td>7.0.0 &#8211; 7.0.1<\/td><td>S\u00ec<\/td><td>S\u00ec<\/td><td>7.0.2<\/td><\/tr><tr><td>7.1 beta precedente a beta2<\/td><td>S\u00ec<\/td><td>S\u00ec<\/td><td>7.1 beta2 o successiva<\/td><\/tr><tr><td>Precedente alla 6.8<\/td><td>No, per queste CVE<\/td><td>No<\/td><td>Non \u00e8 comunque un motivo per restare su una release obsoleta<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">La fonte ufficiale WordPress classifica la vulnerabilit\u00e0 della REST API come critica e conferma che la combinazione con la SQL injection pu\u00f2 arrivare alla Remote Code Execution. Cloudflare aggiunge una precisazione utile: la RCE riguarda le installazioni dalla 6.9 in poi quando non \u00e8 in uso una cache persistente degli oggetti, condizione comune in molte installazioni standard.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Essere su WordPress 6.7 o su una versione ancora pi\u00f9 vecchia non significa avere un sito sicuro. Significa soltanto non essere esposti a queste due vulnerabilit\u00e0 specifiche. Una release datata pu\u00f2 avere altri problemi gi\u00e0 noti e corretti da tempo.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Come funziona la catena, senza trasformare il post in un manuale per attaccanti<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La prima falla interessa&nbsp;<code>WP_Query<\/code>, la classe che WordPress usa per costruire e gestire molte interrogazioni al database. Un parametro non viene trattato in modo sufficientemente sicuro e pu\u00f2 permettere di alterare la query prevista. Questo \u00e8 il pezzo SQL injection.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La seconda falla riguarda l&#8217;endpoint batch della REST API. In breve, WordPress pu\u00f2 confondere il percorso e i controlli applicati a una richiesta, consentendo a un utente anonimo di raggiungere una strada che avrebbe dovuto restare protetta.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Da sola, la SQL injection ha un perimetro pi\u00f9 limitato. Quando la route confusion rimuove il blocco che la teneva lontana dagli utenti anonimi, i due problemi si sommano. Da qui si pu\u00f2 arrivare alla lettura del database, alla compromissione di un account amministrativo e, nelle versioni interessate dalla catena completa, all&#8217;esecuzione di codice nel contesto del processo web.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Non vuol dire automaticamente accesso root al server. Vuol dire per\u00f2 che il sito e tutto ci\u00f2 che il processo PHP pu\u00f2 leggere o modificare devono essere considerati a rischio. Su hosting con isolamento debole, permessi troppo larghi o segreti condivisi, il danno pu\u00f2 allargarsi. Non \u00e8 garantito, ma \u00e8 tecnicamente plausibile.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Il danno tecnico non finisce con la homepage modificata<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Il defacement, cio\u00e8 la sostituzione visibile dei contenuti del sito, \u00e8 quasi la versione gentile del problema. Fa rumore e viene scoperto in fretta. Gli attacchi pi\u00f9 fastidiosi cercano di restare.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. Database letto o manipolato<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Nel database possono esserci utenti, hash delle password, contenuti, configurazioni, dati raccolti dai moduli, ordini WooCommerce e informazioni memorizzate da plugin e integrazioni. Il contenuto preciso cambia da sito a sito, ma l&#8217;idea \u00e8 semplice: il database non contiene soltanto gli articoli del blog.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. Account amministrativi e sessioni compromesse<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Un attaccante pu\u00f2 cercare di ottenere o creare un accesso amministrativo, cambiare indirizzi email, modificare ruoli o mantenere una sessione valida. Aggiornare il core chiude la vulnerabilit\u00e0, ma non elimina un amministratore malevolo creato prima della patch.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3. Backdoor nei file, nei plugin o nei task pianificati<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Il codice malevolo pu\u00f2 finire in un plugin apparentemente innocuo, in un tema, in un file PHP dentro una cartella inconsueta o in un evento pianificato. Pu\u00f2 anche modificare file esistenti per rendere meno evidente la persistenza. Il sito torna normale dopo l&#8217;aggiornamento, ma la porta secondaria resta aperta.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4. Redirect, phishing, malware e spam SEO<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Un sito compromesso pu\u00f2 mostrare pagine diverse ai motori di ricerca, iniettare JavaScript, reindirizzare soltanto alcuni visitatori o ospitare contenuti truffaldini. Questo pu\u00f2 sporcare l&#8217;indicizzazione, far comparire avvisi di sicurezza nel browser, danneggiare la reputazione del dominio e trasformare la pulizia in un lavoro molto pi\u00f9 lungo della patch.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">5. Token e integrazioni esposte<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Molti siti WordPress comunicano con CRM, sistemi email, gateway di pagamento, servizi di automazione e API esterne. Non significa che wp2shell comprometta automaticamente tutti questi sistemi. Significa che credenziali e token leggibili dal sito potrebbero dover essere revocati e rigenerati se l&#8217;installazione risulta compromessa.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">La patch chiude la falla. Non torna indietro nel tempo.<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Questo \u00e8 il punto che rischia di perdersi nel classico \u201caggiornate subito\u201d.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">L&#8217;aggiornamento \u00e8 obbligatorio perch\u00e9 impedisce nuovi tentativi basati su questa catena. Se il sito \u00e8 rimasto esposto, per\u00f2, serve anche chiedersi se qualcuno sia entrato prima della patch. L&#8217;attivit\u00e0 di sfruttamento \u00e8 stata osservata nel mondo reale poco dopo la divulgazione e VulnCheck, al 19 luglio, aveva gi\u00e0 verificato pi\u00f9 di due dozzine di proof of concept pubbliche.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Quindi: patch prima, verifica subito dopo.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Cosa fare adesso, in ordine<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Verificare la versione effettivamente installata<\/strong>, senza dare per scontato che l&#8217;aggiornamento automatico sia riuscito.<\/li>\n\n\n\n<li><strong>Creare uno snapshot o un backup verificabile<\/strong>\u00a0prima dell&#8217;intervento. Se ci sono gi\u00e0 segnali sospetti, preservare anche log ed evidenze prima di ripulire.<\/li>\n\n\n\n<li><strong>Aggiornare al ramo corretto<\/strong>: 6.8.6, 6.9.5, 7.0.2 oppure una versione successiva che includa le correzioni.<\/li>\n\n\n\n<li><strong>Controllare che l&#8217;aggiornamento sia realmente applicato<\/strong>\u00a0e verificare l&#8217;integrit\u00e0 dei file del core.<\/li>\n\n\n\n<li><strong>Eseguire un controllo post-aggiornamento<\/strong>\u00a0su login, moduli, checkout, API, webhook, automazioni e funzioni personalizzate.<\/li>\n\n\n\n<li><strong>Cercare segnali di compromissione<\/strong>\u00a0dalla finestra di esposizione fino al momento della patch.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Da WP-CLI, i controlli di base possono partire da:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>wp core version\nwp core update --minor\nwp core version\nwp core verify-checksums<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Il comando di aggiornamento modifica il sito. Su produzione va eseguito con backup disponibile e con una verifica immediata delle funzioni critiche. In un&#8217;emergenza di sicurezza non userei per\u00f2 un ciclo di test infinito come scusa per lasciare online una versione vulnerabile.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Cosa controllare dopo l&#8217;aggiornamento<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Richieste anomale verso\u00a0<code>\/wp-json\/batch\/v1<\/code>\u00a0e\u00a0<code>?rest_route=\/batch\/v1<\/code>\u00a0nei log del web server, del CDN e del WAF.<\/li>\n\n\n\n<li>Nuovi utenti amministratori, cambi di ruolo, email modificate e sessioni che non riconosci.<\/li>\n\n\n\n<li>Plugin o temi installati di recente e non previsti.<\/li>\n\n\n\n<li>File modificati, PHP in directory insolite, differenze nei checksum del core e codice offuscato.<\/li>\n\n\n\n<li>Eventi WP-Cron inattesi, modifiche a\u00a0<code>wp_options<\/code>, URL cambiati, redirect e configurazioni alterate.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Se emergono elementi sospetti, non partire cancellando file a caso. Isola il sito, conserva le evidenze, ricostruisci la sequenza degli eventi e valuta un ripristino da una sorgente pulita. Poi ruota password, sessioni, chiavi e token che il sito poteva leggere.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un firewall applicativo pu\u00f2 ridurre l&#8217;esposizione. Cloudflare ha distribuito regole dedicate anche sul piano gratuito per il traffico effettivamente proxato dal suo WAF. Searchlight Cyber indica inoltre il blocco temporaneo dell&#8217;accesso anonimo agli endpoint batch come mitigazione d&#8217;emergenza. Ma \u00e8, appunto, temporanea: pu\u00f2 rompere funzioni legittime e non sostituisce la patch.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Domande frequenti su wp2shell<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">wp2shell sfrutta plugin o temi di terze parti?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">No. La catena interessa il core di WordPress e pu\u00f2 colpire un&#8217;installazione standard senza plugin. I plugin presenti possono per\u00f2 aumentare i possibili percorsi successivi una volta ottenuto l&#8217;accesso.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Sono vulnerabile se uso WordPress 6.8.x?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Le versioni dalla 6.8.0 alla 6.8.5 sono vulnerabili alla SQL injection CVE-2026-60137, ma non alla catena completa RCE wp2shell. La correzione per questo ramo \u00e8 WordPress 6.8.6.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">L&#8217;aggiornamento automatico forzato mi protegge?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Protegge soltanto se \u00e8 andato a buon fine. Permessi del filesystem, configurazioni, plugin di gestione o procedure di deploy possono impedire o sovrascrivere l&#8217;aggiornamento. La versione effettiva va verificata.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Un WAF \u00e8 sufficiente senza aggiornare?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">No. Il WAF \u00e8 una difesa aggiuntiva e una mitigazione temporanea. La correzione definitiva \u00e8 l&#8217;aggiornamento del core a una versione sicura.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Se ho aggiornato devo comunque controllare il sito?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">S\u00ec, soprattutto se il sito \u00e8 rimasto online su una versione vulnerabile dopo la divulgazione. La patch impedisce nuovi attacchi basati sulla falla, ma non rimuove account, file o backdoor creati prima.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Il problema business merita un discorso separato<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Qui ho tenuto il focus sul funzionamento tecnico, sui danni possibili e sui controlli da fare. Su&nbsp;<a href=\"https:\/\/webwakeup.it\/vulnerabilita-wordpress-wp2shell-rischi-siti-aziendali\/\" target=\"_blank\" rel=\"noopener\">WebWakeUp abbiamo affrontato l&#8217;altro lato della faccenda<\/a>: continuit\u00e0 operativa, dati, vendite, reputazione e responsabilit\u00e0 tra azienda, hosting e fornitore tecnico.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Quellen<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/wordpress.org\/news\/2026\/07\/wordpress-7-0-2-release\/\" target=\"_blank\" rel=\"noreferrer noopener\">WordPress 7.0.2 Security Release<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/WordPress\/wordpress-develop\/security\/advisories\/GHSA-fpp7-x2x2-2mjf\" target=\"_blank\" rel=\"noreferrer noopener\">GitHub Security Advisory per CVE-2026-60137<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/WordPress\/wordpress-develop\/security\/advisories\/GHSA-ff9f-jf42-662q\" target=\"_blank\" rel=\"noreferrer noopener\">GitHub Security Advisory per CVE-2026-63030<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/cert-agid.gov.it\/news\/wp2shell-vulnerabilita-critiche-nel-core-di-wordpress-necessario-aggiornare-i-sistemi\/\" target=\"_blank\" rel=\"noreferrer noopener\">CERT-AGID, wp2shell: vulnerabilit\u00e0 critiche nel core di WordPress<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/blog.cloudflare.com\/wordpress-vulnerabilities\/\" target=\"_blank\" rel=\"noreferrer noopener\">Cloudflare, protezioni WAF per le vulnerabilit\u00e0 WordPress<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.vulncheck.com\/blog\/wp2shell\" target=\"_blank\" rel=\"noreferrer noopener\">VulnCheck, analisi e stato delle proof of concept<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.securityweek.com\/wp2shell-wordpress-vulnerabilities-exploited-in-the-wild\/\" target=\"_blank\" rel=\"noreferrer noopener\">SecurityWeek, attivit\u00e0 osservata nel mondo reale<\/a><\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>\u00c8 venerd\u00ec 17 luglio 2026. WordPress pubblica tre aggiornamenti di sicurezza e, insieme alle nuove versioni, attiva gli aggiornamenti automatici forzati sui siti interessati. Quando un progetto come WordPress decide di spingere una patch in questo modo, di solito non sta correggendo il colore sbagliato di un pulsante. L&#8217;annuncio ufficiale parla di&nbsp;un problema critico e [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":55208,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[64,444,402,381],"tags":[405,384,390,445,382,446],"class_list":["post-55204","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","category-sicurezza","category-web","category-wordpress","tag-danni-aziendali","tag-e-commerce","tag-self-hosting","tag-sicurezza","tag-wordpress","tag-wp2shell"],"meta_box":{"articolo_correlato_di_approfondimento":"","data_pubblicazione_sui_social":"0","pubblicato_sui_social":"","immagine_generata":"true"},"_links":{"self":[{"href":"https:\/\/edoardoguzzi.com\/de\/wp-json\/wp\/v2\/posts\/55204","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/edoardoguzzi.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/edoardoguzzi.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/edoardoguzzi.com\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/edoardoguzzi.com\/de\/wp-json\/wp\/v2\/comments?post=55204"}],"version-history":[{"count":3,"href":"https:\/\/edoardoguzzi.com\/de\/wp-json\/wp\/v2\/posts\/55204\/revisions"}],"predecessor-version":[{"id":55209,"href":"https:\/\/edoardoguzzi.com\/de\/wp-json\/wp\/v2\/posts\/55204\/revisions\/55209"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/edoardoguzzi.com\/de\/wp-json\/wp\/v2\/media\/55208"}],"wp:attachment":[{"href":"https:\/\/edoardoguzzi.com\/de\/wp-json\/wp\/v2\/media?parent=55204"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/edoardoguzzi.com\/de\/wp-json\/wp\/v2\/categories?post=55204"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/edoardoguzzi.com\/de\/wp-json\/wp\/v2\/tags?post=55204"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}