Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2025-68664-LangGrinch-PoC — Un framework de test pour identifier et démontrer les vulnérabilités de désérialisation dans LangChain Core (<0.3.81). Usage éducatif uniquement. | Kitploit
Outils/GitHubGitHub/ak-cybe/cve-2025-68664-langgrinch-poc
Analyse des VulnérabilitésAnalyse de CodeExploitationExploitation d'Applications WebTests d'IntrusionDétection de SecretsApprentissage et ÉducationDéveloppement de Charges UtilesSécurité de l'IA
GitHubak-cybe/cve-2025-68664-langgrinch-poc

CVE-2025-68664-LangGrinch-PoC

Un framework de test pour identifier et démontrer les vulnérabilités de désérialisation dans LangChain Core (<0.3.81). Usage éducatif uniquement.

Voir le dépôt
3229il y a 9 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Bannière d'en-tête

Texte animé

Sévérité Type Nom de code Statut CWE


📑 Table des matières

  • 🎯 Résumé exécutif
  • 📂 Structure du projet
  • 🚀 Démarrage rapide
  • 🐛 Analyse approfondie de la vulnérabilité
  • 🔬 Analyse technique de la cause racine
  • ⚔️ Méthodologie de la chaîne d'attaque
  • 💀 Arsenal de charges utiles (55+)
  • 🎮 Guide stratégique de l'opérateur
  • 🛡️ Atténuation et défense
  • 📚 Références et crédits

📂 Structure du projet```

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

## 🚀 Démarrage rapide

### Installation```bash
# Clone the repository
git clone https://github.com/Ak-cybe/LangGrinch-PoC.git
cd LangGrinch-PoC

# Install dependencies
pip install -r requirements.txt

Utilisation```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 Hacker"/>
  <img src="https://assets.kitploit.com/production/public/readmes/15055/0751965da24039c9facbe6006461ec38a66ff560b42dc590d1964f43f7f9853d.gif" width="200" alt="GIF Sécurité"/>
  GIF Matrix
</p>

---

## 🎯 Résumé Exécutif

**CVE-2025-68664 (Nom de code : LangGrinch)** est une **vulnérabilité critique d'injection de sérialisation** découverte dans le package Python **LangChain Core**. Cette vulnérabilité permet aux attaquants d'injecter des marqueurs `lc` malveillants via les sorties des LLM ou des dictionnaires contrôlés par l'utilisateur, permettant :

1. 🔑 **Extraction de secrets d'environnement** (clés API, mots de passe de base de données)
2. 🌐 **Attaques SSRF** (ciblant les services internes)
3. 💀 **Exécution de code à distance** (via la chaîne SSTI Jinja2)
4. 📂 **Accès au système de fichiers** (lecture de fichiers sensibles)

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

### ⚡ Statistiques rapides

| 🔥 Métrique | 📊 Valeur |
|-----------|----------|
| **CVE ID** | CVE-2025-68664 |
| **Nom de code** | LangGrinch |
| **Type d'attaque** | Injection de désérialisation |
| **Authentification requise** | Non (Injection par invite) |
| **Complexité** | FAIBLE |

</td>
<td>

### 🎯 Versions affectées

| 📌 Propriété | 📝 Valeur |
|-------------|----------|
| **Package** | langchain-core |
| **Vulnérable** | < 0.3.81, >= 1.0.0 < 1.2.5 |
| **Corrigé** | 0.3.81+, 1.2.5+ |
| **Impact** | Secrets + RCE |
| **CWE** | CWE-502 |

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

---

## 🐛 Plongée technique dans la vulnérabilité

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

### 📋 Aperçu technique

| Propriété | Valeur |
|----------|-------|
| 🆔 **CVE ID** | CVE-2025-68664 |
| 🏷️ **Nom de code** | LangGrinch |
| 📊 **Gravité** | CRITIQUE 🔴 |
| 🔗 **CWE** | CWE-502 (Désérialisation de données non fiables) |
| 📦 **Package affecté** | `langchain-core` |
| ⚠️ **Versions vulnérables** | `< 0.3.81` ET `>= 1.0.0, < 1.2.5` |
| ✅ **Versions corrigées** | `0.3.81+`, `1.2.5+` |

### 🤖 Qu'est-ce que LangChain ?

LangChain est un framework Python populaire utilisé pour construire des applications avec **Grands Modèles de Langage (LLM)**. Il est largement déployé dans diverses industries :

| 🏢 Cas d'utilisation | 📝 Description |
|-------------|----------------|
| 🤖 **Chatbots IA** | Service client, agents de support |
| 🔍 **Systèmes RAG** | Génération augmentée par récupération |
| 🔧 **Agents IA** | Exécution autonome de tâches |
| 📊 **Traitement de données** | Analyse de documents, résumé |
| 🔄 **Automatisation de flux de travail** | Pipelines alimentés par IA |

### 🔧 Cause racine technique

Le format de sérialisation interne de LangChain utilise un marqueur spécial - la **clé `lc`**. Lorsqu'un dictionnaire contient la clé `lc`, le désérialiseur de LangChain le traite comme un "objet sérialisé de confiance de LangChain".

**Le bogue est :**
- Les fonctions `dumps()` / `dumpd()` n'échappent/ne neutralisent PAS la clé `lc` dans les dictionnaires contrôlés par l'utilisateur ou le LLM
- Lors de la réhydratation via `load()` / `loads()`, la structure injectée est traitée comme un **objet interne**```
🔓 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                                 │
└─────────────────────────────────────────────────────────────────┘

🔬 Analyse technique des causes racines

🎯 Le problème du marqueur "lc"

Télécharger l’outil