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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2025-68664-LangGrinch-PoC — LangChain Core(<0.3.81)におけるデシリアライゼーションの脆弱性を特定し、実演するためのテストフレームワーク。教育目的のみ。 | Kitploit
ツール/GitHubGitHub/ak-cybe/cve-2025-68664-langgrinch-poc
脆弱性分析コード分析エクスプロイトウェブアプリケーション悪用ペネトレーションテストシークレット検出学習と教育ペイロード開発AIセキュリティ
GitHubak-cybe/cve-2025-68664-langgrinch-poc

CVE-2025-68664-LangGrinch-PoC

LangChain Core(<0.3.81)におけるデシリアライゼーションの脆弱性を特定し、実演するためのテストフレームワーク。教育目的のみ。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

Header Banner

Typing SVG

Severity Type Codename Status CWE


📑 目次

  • 🎯 エグゼクティブサマリー
  • 📂 プロジェクト構成
  • 🚀 クイックスタート
  • 🐛 脆弱性深掘り
  • 🔬 技術的根本原因分析
  • ⚔️ 攻撃チェイン手法
  • 💀 ペイロード兵器庫(55以上)
  • 🎮 オペレーター戦略ガイド
  • 🛡️ 緩和策と防御
  • 📚 参考文献とクレジット

📂 プロジェクト構成```

LangGrinch-PoC/ │ ├── README.md # Main documentation & writeup ├── PAYLOADS.md # Complete payload arsenal (55+) ├── langgrinch_fuzzer.py # Python payload generator & tester ├── requirements.txt # Python dependencies └── LICENSE # MIT License

---

## 🚀 クイックスタート

### インストール```bash
# Clone the repository
git clone https://github.com/Ak-cybe/LangGrinch-PoC.git
cd LangGrinch-PoC

# Install dependencies
pip install -r requirements.txt

使い方```bash

List all available payloads

python langgrinch_fuzzer.py --list

Show payloads by category

python langgrinch_fuzzer.py --category recon python langgrinch_fuzzer.py --category ssrf python langgrinch_fuzzer.py --category rce

Generate custom secret extraction payload

python langgrinch_fuzzer.py --secret MY_API_KEY

Generate custom SSRF payload

python langgrinch_fuzzer.py --ssrf http://your-webhook.com/

Export all payloads to JSON

python langgrinch_fuzzer.py --export payloads.json

---

<p align="center">
  <img src="https://assets.kitploit.com/production/public/readmes/15055/a59cc259070b0a6930250b423ecf6befeab7fd75694091738ff5f8d2899b56ad.gif" width="200" alt="ハッカーGIF"/>
  <img src="https://assets.kitploit.com/production/public/readmes/15055/0751965da24039c9facbe6006461ec38a66ff560b42dc590d1964f43f7f9853d.gif" width="200" alt="セキュリティGIF"/>
  マトリックスGIF
</p>

---

## 🎯 エグゼクティブサマリー

**CVE-2025-68664(コードネーム: LangGrinch)** は **LangChain Core Pythonパッケージ** で発見された深刻な **シリアライゼーションインジェクション脆弱性** です。この脆弱性により、攻撃者はLLMの出力やユーザーが制御する辞書を介して悪意のある `lc` マーカーを注入でき、以下が可能になります:

1. 🔑 **環境シークレットの抽出**(APIキー、DBパスワード)
2. 🌐 **SSRF攻撃**(内部サービスへのアクセス)
3. 💀 **リモートコード実行**(Jinja2 SSTIチェーン経由)
4. 📂 **ファイルシステムアクセス**(機密ファイルの読み取り)

<table align="center">
<tr>
<td>

### ⚡ クイック統計

| 🔥 メトリクス | 📊 値 |
|-----------|----------|
| **CVE ID** | CVE-2025-68664 |
| **コードネーム** | LangGrinch |
| **攻撃タイプ** | デシリアライゼーションインジェクション |
| **認証要件** | なし(プロンプトインジェクション) |
| **複雑さ** | 低 |

</td>
<td>

### 🎯 影響を受けるバージョン

| 📌 プロパティ | 📝 値 |
|-------------|----------|
| **パッケージ** | langchain-core |
| **脆弱なバージョン** | < 0.3.81, >= 1.0.0 < 1.2.5 |
| **修正済みバージョン** | 0.3.81+, 1.2.5+ |
| **影響** | シークレット + RCE |
| **CWE** | CWE-502 |

</td>
</tr>
</table>

---

## 🐛 脆弱性の詳細

<p align="center">
  <img src="https://assets.kitploit.com/production/public/readmes/15055/fb07ef9946fd69ee29be7a85737fa8b18fa02c8ec40293de8a4994d5e8419a6a.gif" width="300" alt="バグGIF"/>
</p>

### 📋 技術概要

| プロパティ | 値 |
|----------|-------|
| 🆔 **CVE ID** | CVE-2025-68664 |
| 🏷️ **コードネーム** | LangGrinch |
| 📊 **深刻度** | 重大 🔴 |
| 🔗 **CWE** | CWE-502(信頼できないデータのデシリアライゼーション) |
| 📦 **影響を受けるパッケージ** | `langchain-core` |
| ⚠️ **脆弱なバージョン** | `< 0.3.81` かつ `>= 1.0.0, < 1.2.5` |
| ✅ **修正済みバージョン** | `0.3.81+`, `1.2.5+` |

### 🤖 LangChainとは?

LangChainは、**大規模言語モデル(LLM)** を使用してアプリケーションを構築するための人気のあるPythonフレームワークです。さまざまな業界で広く導入されています:

| 🏢 ユースケース | 📝 説明 |
|-------------|----------------|
| 🤖 **AIチャットボット** | カスタマーサービス、サポートエージェント |
| 🔍 **RAGシステム** | 検索拡張生成(RAG) |
| 🔧 **AIエージェント** | 自律的なタスク実行 |
| 📊 **データ処理** | 文書分析、要約 |
| 🔄 **ワークフロー自動化** | AIを活用したパイプライン |

### 🔧 技術的根本原因

LangChainの内部シリアライゼーションフォーマットは、特別なマーカーである **`lc`キー** を使用します。辞書に `lc` キーが含まれている場合、LangChainのデシリアライザはそれを「信頼されたLangChainシリアライズオブジェクト」として扱います。

**バグの内容:**
- `dumps()` / `dumpd()` 関数は、ユーザー/LLMが制御する辞書内の `lc` キーをエスケープ/無効化しません。
- `load()` / `loads()` による再水和中、注入された構造は **内部オブジェクト** として処理されます。```
🔓 VULNERABILITY CHAIN:
┌─────────────────────────────────────────────────────────────────┐
│  📝 User/LLM Input → Dictionary with malicious "lc" marker     │
│                           ↓                                     │
│  💾 Application serializes data (dumps/dumpd)                   │
│                           ↓                                     │
│  ⚠️  "lc" key NOT escaped - remains in serialized form          │
│                           ↓                                     │
│  🔄 Later: Data deserialized (load/loads)                       │
│                           ↓                                     │
│  🎯 Deserializer sees "lc" → Treats as LangChain object!        │
│                           ↓                                     │
│  💀 Secret resolution / Object instantiation triggered          │
│                           ↓                                     │
│  💥 SECRETS LEAKED / SSRF / RCE                                 │
└─────────────────────────────────────────────────────────────────┘

🔬 技術的な根本原因分析

🎯 「lc」マーカーの問題

LangChainのシリアル化形式では、辞書内に "lc": 1 が存在する場合、それはユーザーデータではなく、LangChainのシリアル化されたオブジェクトであることを示します。```json { "lc": 1, "type": "secret", "id": ["OPENAI_API_KEY"] }

デシリアライザがこの構造に遭遇すると:
1. `lc` == 1 により、それが LangChain オブジェクトであることが確認される
2. `type` == "secret" により、シークレット解決パスがトリガーされる
3. 環境変数名は `id` 配列から抽出される
4. **結果:** `os.environ["OPENAI_API_KEY"]` の値が返される!

### 🗺️ 攻撃フロー図```mermaid
graph TD
    A[🎯 Attacker] -->|Prompt Injection| B[🤖 LLM outputs malicious dict]
    B -->|Contains lc marker| C[📝 App serializes LLM output]
    C -->|Cache/Log/History| D[💾 Stored in system]
    D -->|Later retrieval| E[🔄 Deserialization triggered]
    E -->|lc marker detected| F[⚙️ LangChain object resolution]
    F -->|type: secret| G[🔑 ENV SECRETS LEAKED]
    F -->|type: constructor| H[🏗️ UNSAFE OBJECT INSTANTIATION]
    H -->|SSRF Gadget| I[🌐 OUTBOUND CONNECTIONS]
    H -->|Jinja2 Template| J[💀 CODE EXECUTION]
    
    style A fill:#ff0000,color:#fff
    style G fill:#ff9800,color:#fff
    style I fill:#9c27b0,color:#fff
    style J fill:#000000,color:#fff

🔍 インジェクションポイント

📍 インジェクションポイント🎯 動作の仕組み
LLM出力プロンプトインジェクションを使ってLLMに悪意のあるJSONを出力させる
additional_kwargsメッセージオブジェクトの追加フィールドに注入
response_metadataAPIレスポンスのメタデータに仕込む
ツール出力エージェントツールの結果に埋め込む
ユーザーメッセージ直接のユーザー入力処理

⚔️ 攻撃チェーン方法論

ツールをダウンロード