La vulnerabilità CVE-2026-87902, corretta in WordPress 7.1.2, permette ad un attaccante non autenticato di sfruttare una Path Traversal nel parametro pagename per forzare WordPress a caricare file PHP arbitrari presenti sul server.
Come funziona
Il problema nasce dal fatto che WordPress decodifica (urldecode) il parametro pagename e lo utilizza nella ricerca del template senza applicare adeguati controlli alla versione decodificata del percorso. Un attaccante può quindi inviare sequenze come: templates%252f%252e%252e%252f…
che dopo la doppia decodifica diventano: templates/../../../…
consentendo a WordPress di includere file PHP esterni alla directory del tema.
Versioni vulnerabili
Sono interessate tutte le versioni WordPress dalla 4.7.0 alla 7.1.1. La vulnerabilità è stata corretta nelle release di sicurezza 7.1.2, 7.0.6, 6.9.9, 6.8.10, 6.7.9 e relative backport.
Dalla Path Traversal alla RCE
La vulnerabilità di base è una Local PHP File Inclusion (LFI). L’RCE (Remote Code Execution) si ottiene solo se sono presenti ulteriori condizioni sul server.
Il PoC pubblico utilizza il tool PEAR incluso in molte installazioni PHP. Gli attaccanti in genere costruiscono poi delle webshell, come quella riportata in figura e rilevata su un server compromesso, che consentono di eseguire comandi e operazioni sul server stesso.

Tracce di attacco
Se i tuoi log contengono gli indicatori citati che corrisponde al metodo di exploit descritto allora è stato eseguito, e forse ha avuto successo, un tentativo di attacco che sfrutta questa vulnerabilità
Path Traversal, log: HTTP: POST /?page_id=5966&pagename=templates%252f%252e%252e%252f…
Utilizzo di PEAR, log: HTTP: POST /?+config-create+
I passi successivi possono essere quelli di una creazione di una webshell come ad esempio:
HTTP /tmp/bunk-xxxxx.php
e successivamente:
HTTP GET /wp-content/uploads/bunk_hro31t.php
La catena di escalation tramite PEAR può funzionare quando il file php.ini contiene: register_argc_argv = On
Mitigazioni consigliate
Aggiornare WordPress alla versione corretta.
Impostare register_argc_argv = Off.
Rimuovere PEAR dai sistemi esposti se non necessario.
Controllare la presenza di directory page-* nei temi.
Cercare file PHP sospetti in:
wp-content/uploads
webroot
/tmp
Analizzare i log alla ricerca di:
page_id, pagename, %25, “../”, “+config-create+”








