
Preuve de concept de la CVE-2025-31864
Plugin WordPress
Nom du composant Beam me up Scotty – Back to Top Button
Version vulnérable <= 1.0.23
Slug du composant beam-me-up-scotty
Lien du composant https://wordpress.org/plugins/beam-me-up-scotty/
Classe de vulnérabilité A3: Injection
Type de vulnérabilité Cross Site Scripting (XSS)
Administrateur
Dans les versions 1.0.23 et antérieures du plugin Beam me up Scotty, il existe une vulnérabilité de type cross-site scripting stocké due à une validation insuffisante des types de données et à l'absence de traitement d'échappement pour les paramètres de personnalisation du bouton de retour en haut.
Ces paramètres de personnalisation ne sont accessibles qu'aux utilisateurs disposant de privilèges d'administrateur. Si un attaquant disposant de droits d'administrateur exploite cette vulnérabilité, les visiteurs de toutes les pages où le bouton de retour en haut est affiché seront exposés à des attaques de cross-site scripting.
Préparez un site WordPress avec le plugin Beam me up Scotty version 1.0.23 ou inférieure installée et activée.
Accédez au menu de personnalisation du bouton de retour en haut (/wp-admin/themes.php?page=beam-me-up-scotty_settings).

Avec l'interception d'un outil proxy (par exemple BurpSuite) activée, cliquez sur le bouton "Enregistrer" en bas du menu des paramètres du bouton de retour en haut pour intercepter le paquet de requête qui enregistre les paramètres de personnalisation.

Modifiez la valeur de la payload beam_me_up_scotty_bottom_indentation dans la payload de requête comme suit, puis effectuez Forward.
20px;}</style><script>alert("XSS")</script><style>foo{bottom:0

Après avoir accédé au site WordPress, vous pouvez confirmer que la vulnérabilité XSS se déclenche.


Le plugin Beam me up Scotty exécute le fichier /wp-content/plugins/beam-me-up-scotty/library/includes/dynamic-css.php pour appliquer les paramètres de personnalisation du bouton de retour en haut.
Ce fichier définit les paramètres de personnalisation comme valeurs d'attribut style pour le bouton de retour en haut à l'intérieur de la balise style. À ce stade, vous pouvez vérifier que les paramètres de personnalisation du bouton de retour en haut sont référencés dans la balise style sans aucun traitement d'échappement.

Par conséquent, comme montré dans le PoC, nous pouvons confirmer que lorsque la payload beam_me_up_scotty_bottom_indentation contenant le script d'attaque XSS est saisie, le script s'exécute car sa valeur est référencée comme valeur d'attribut style du bouton de retour en haut sans aucun traitement d'échappement.

En résultat, en accédant au site WordPress, vous pouvez vérifier le code HTML suivant.
