← AEU Hosting Blog

WordPress 7.1.2 corregge una falla critica nei file dei template

2026-10-12

WordPress 7.1.2 corregge una falla critica nei file dei template

WordPress 7.1.2 è stato rilasciato il 22 settembre 2026 come aggiornamento esclusivamente di sicurezza per una singola vulnerabilità del Core, ma il problema è serio: un’inclusione di file locale non autenticata nella risoluzione dei template di pagina che, in alcune configurazioni di hosting, può arrivare all’esecuzione di codice da remoto. Non autenticata significa che un aggressore non ha bisogno di un account WordPress. Inclusione di file locale significa costringere il sito a caricare un file già presente sul server. Esecuzione di codice da remoto significa indurre il server a eseguire comandi o codice scelti dall’aggressore.

Secondo Patchstack, la falla riguarda WordPress Core dalla versione 4.7.0 fino alla 7.1.1 inclusa. Ha un punteggio CVSS 4.0 di 9.2, con il vettore AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N. CVSS, il Common Vulnerability Scoring System, è un metodo standard per valutare la gravità dei bug di sicurezza. La vulnerabilità è classificata come CWE-98, controllo improprio di un nome file per un’istruzione di inclusione, e le è stato assegnato CVE-2026-87902.

Il rischio è più ampio di un normale bug di una singola versione perché è interessato ogni ramo fino a WordPress 4.7, cosa che Patchstack descrive come quasi un decennio di rilasci. Non è richiesto alcun accesso per tentare lo sfruttamento. Questa combinazione è importante per i proprietari di siti web perché i siti WordPress esposti pubblicamente sono raggiungibili da chiunque su internet, e le vulnerabilità che non richiedono un account sono più facili da sondare su larga scala.

Il percorso vulnerabile si trova nel modo in cui WordPress sceglie i template di pagina. Quando WordPress renderizza una pagina, get_page_template() in wp-includes/template.php costruisce possibili nomi di file template e li passa al caricatore dei template. Un candidato proveniva dalla variabile di query pagename, un valore preso dalla richiesta. Nelle versioni vulnerabili, uno slug di template di pagina vicino veniva controllato con validate_file(), il controllo di WordPress per l’attraversamento non sicuro dei file, ma il nome file costruito da pagename no.

Quel controllo mancante non rendeva raggiungibile ogni file su un server. Il nome file veniva assemblato nella forma page-{pagename}.php, quindi il percorso doveva proseguire attraverso una directory che iniziava davvero con page-, e il target incluso doveva comunque terminare in .php perché WordPress aggiungeva quell’estensione. Patchstack afferma che la precondizione pratica è un tema attivo con una directory di primo livello come page-templates, uno schema presente nei vecchi temi predefiniti e in diversi temi di terze parti popolari. Una chiamata urldecode() aggiuntiva, che converte i caratteri codificati negli URL nella loro forma normale, è ciò che poteva trasformare uno slug con forma di attraversamento in un percorso reale. Patchstack afferma di non pubblicare una richiesta funzionante.

Il passaggio dall’inclusione di file all’esecuzione di codice da remoto è condizionato. Includere un file PHP locale, dove PHP è il linguaggio di programmazione su cui gira WordPress, esegue qualunque cosa quel file faccia normalmente. Per ottenere l’esecuzione di codice arbitrario, un aggressore ha bisogno di un file .php leggibile sul server che si comporti in modo utile quando viene incluso. Patchstack identifica pearcmd.php di PEAR come il candidato ben noto, ma afferma che diventa utile solo quando PHP è in esecuzione con register_argc_argv abilitato. register_argc_argv è un’impostazione PHP che rende disponibili agli script argomenti in stile riga di comando.

Quell’impostazione non è rara negli ambienti indicati da Patchstack. È abilitata per impostazione predefinita nelle immagini Docker ufficiali di PHP e negli ambienti cPanel su PHP precedente alla versione 8.5. Per i proprietari di siti, quindi, la lettura pratica non è “sono a rischio solo server insoliti”. Patchstack inquadra il problema come inclusione di file non autenticata in ogni caso, ed esecuzione di codice quando lo stack di hosting si allinea. Il suo consiglio è trattare la falla come critica a meno che lo stack specifico del sito non sia stato controllato e confermato come non rispondente a quelle condizioni.

WordPress 7.1.2 ha introdotto due modifiche rilevanti. La prima applica lo stesso controllo validate_file() al percorso pagename decodificato che il ramo vicino aveva già. La seconda aggiunge un controllo di contenimento più ampio, _wp_is_template_path_allowed(), per ogni percorso di template risolto, indipendentemente dal percorso di codice che lo ha prodotto. Se un percorso di file esiste e non contiene un marcatore di attraversamento della directory padre, è consentito. In caso contrario, WordPress risolve il percorso reale e richiede che si trovi all’interno di una posizione tema consentita: la directory stylesheet, la directory template o theme-compat.

Questa seconda modifica è importante perché tratta la risoluzione dei template come una classe di rischio più ampia, non solo come una singola chiamata di validazione mancante. Una modifica di validazione di una sola riga avrebbe risolto il percorso segnalato. Richiedere che ogni percorso di template risolto rimanga all’interno delle directory tema consentite aggiunge un limite di sicurezza attorno allo stesso processo di caricamento dei template.

La tempistica è compatta. Il 22 settembre 2026, WordPress 7.1.2 è stato rilasciato con correzioni backportate per ogni ramo supportato fino alla 4.7. Nella stessa data è stato pubblicato l’avviso GHSA-7hp8-65ch-5whp ed è stato assegnato CVE-2026-87902. Patchstack ha anche aggiunto il problema al proprio database delle vulnerabilità e afferma di aver distribuito una regola RapidMitigate ai siti protetti, pur continuando a raccomandare l’aggiornamento alla versione WordPress più recente disponibile.

I proprietari di siti web possono aggiornare tramite la Bacheca di WordPress nella sezione Aggiornamenti oppure scaricare il rilascio direttamente da WordPress.org. I siti con aggiornamenti automatici in background abilitati dovrebbero aver già ricevuto la correzione. Poiché il problema risale fino a WordPress 4.7, sono stati pubblicati rilasci corretti per ogni ramo su cui WordPress continua a eseguire backport, permettendo ai siti più vecchi di applicare la correzione di sicurezza senza un salto di versione principale. Patchstack nota inoltre che solo la versione WordPress più recente è supportata attivamente, e quella rimane la versione a cui i siti dovrebbero puntare.

Se un aggiornamento immediato non è possibile, i due controlli raccomandati da Patchstack sono indicatori pratici di rischio, non correzioni. Per prima cosa, verificare se il tema attivo ha una directory di primo livello che inizia con page-. In secondo luogo, verificare se PHP ha register_argc_argv abilitato. Queste risposte indicano al proprietario di un sito quanto il server sia vicino alla catena peggiore di esecuzione del codice, ma non sostituiscono l’installazione del rilascio WordPress corretto. Per i proprietari di siti che preferiscono non gestire tutto da soli, AEU Hosting è un hosting WordPress gestito, protetto end to end.