
PoC di CVE-2025-31864
Plugin WordPress
Nome del componente Beam me up Scotty – Back to Top Button
Versione vulnerabile <= 1.0.23
Slug del componente beam-me-up-scotty
Link del componente https://wordpress.org/plugins/beam-me-up-scotty/
Classe di vulnerabilità A3: Injection
Tipo di vulnerabilità Cross Site Scripting (XSS)
Amministratore
Nelle versioni 1.0.23 e precedenti del plugin Beam me up Scotty esiste una vulnerabilità di cross-site scripting persistente dovuta a una validazione insufficiente del tipo di dati e a una mancanza di escaping per le impostazioni di personalizzazione del pulsante ‘back to top’.
Queste impostazioni di personalizzazione sono accessibili solo agli utenti con privilegi di amministratore e, se un attaccante con diritti di amministratore sfrutta questa vulnerabilità, i visitatori di tutte le pagine in cui viene visualizzato il pulsante ‘back to top’ saranno esposti ad attacchi di cross-site scripting.
Preparare un sito WordPress con il plugin Beam me up Scotty versione 1.0.23 o inferiore installato e attivato.
Accedere al menu per personalizzare il pulsante ‘back to top’(/wp-admin/themes.php?page=beam-me-up-scotty_settings).

Con uno strumento proxy (es. BurpSuite) con l'intercettazione abilitata, fare clic sul pulsante 'Save' in fondo al menu delle impostazioni del pulsante ‘back to top’ per intercettare il pacchetto di richiesta che salva le impostazioni di personalizzazione del pulsante ‘back to top’.

Modificare il valore del payload beam_me_up_scotty_bottom_indentation nel payload della richiesta come segue, quindi eseguire Forward.
20px;}</style><script>alert("XSS")</script><style>foo{bottom:0

Dopo aver visitato il sito WordPress, è possibile confermare che la vulnerabilità XSS si manifesta.


Il plugin Beam me up Scotty esegue il file /wp-content/plugins/beam-me-up-scotty/library/includes/dynamic-css.php per applicare le impostazioni di personalizzazione del pulsante ‘back to top’.
Questo file imposta le impostazioni di personalizzazione come valori dell'attributo style per il pulsante ‘back to top’ all'interno del tag style. A questo punto, è possibile verificare che le impostazioni di personalizzazione del pulsante ‘back to top’ vengono referenziate nel tag style senza alcun escaping.

Pertanto, come mostrato nel PoC, possiamo confermare che quando viene inserito il payload beam_me_up_scotty_bottom_indentation contenente lo script di attacco XSS, lo script viene eseguito perché il suo valore viene referenziato come valore dell'attributo style del pulsante ‘back to top’ senza alcun escaping.

Di conseguenza, accedendo al sito WordPress, è possibile verificare il seguente codice HTML.
