Failles et vulnérabilités du Web

Newspaper Theme <= 10.3.3 – Reflected XSS dans l'administration

Blog Failles et vulnérabilités du Web Newspaper Theme <= 10.3.3 – Reflected XSS dans l'administration
0 comments

Newspaper est un thème populaire de chez themeforest créé par Tagdiv, avec environ 95,000 ventes.

Reflected XSS

Nous avons trouvé dans le fichier functions.php une vulnérabilité de type XSS, permettant à un attaquant d’ajouter du code JavaScript dans le tableau de bord de l’administration.

Voyez le code :

[pastacode lang=”php” manual=”add_action(%20’current_screen’%2C%20function()%20%7B%0A%20%20%20%20%24current_screen%20%3D%20get_current_screen()%3B%0A%0A%20%20%20%20if%20(%20’update-core’%20%3D%3D%3D%20%24current_screen-%3Eid%20%26%26%20isset(%20%24_REQUEST%5B’update_theme’%5D%20))%20%7B%0A%0A%20%20%20%20%20%20%20%20add_action(‘admin_head’%2C%20function()%20%7B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%24theme_name%20%3D%20%24_REQUEST%5B’update_theme’%5D%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20ob_start()%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%3F%3E%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Cscript%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20jQuery(window).ready(function()%20%7B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20’use%20strict’%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20%24formUpgradeThemes%20%3D%20jQuery(‘form%5Bname%3D%22upgrade-themes%22%5D’)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20(%20%24formUpgradeThemes.length%20)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20%24input%20%3D%20%24formUpgradeThemes.find(‘input%5Btype%3D%22checkbox%22%5D%5Bvalue%3D%22%3C%3Fphp%20echo%20%24theme_name%20%3F%3E%22%5D’)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20(%24input.length)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24input.attr(%20’checked’%2C%20true%20)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24formUpgradeThemes.submit()%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fscript%3E%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%3C%3Fphp%0A%20%20%20%20%20%20%20%20%20%20%20%20echo%20ob_get_clean()%3B%0A%20%20%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%7D%0A%7D)%3B” message=”” highlight=”8,20″ provider=”manual”/]

La ligne 8 (383 dans functions.php) va juste lire le paramètre update_theme depuis l’URL du navigateur, puis en ligne 21 (395 dans functions.php) l’imprime tel quel, sans aucun échappement ni désinfection.

https://themeforest.net/item/newspaper/5489609

La version 10.3.4 corrige la faille, tenez vous à jour et vous êtes OK.

0 comments