Skip to content
KitploitKITPLOIT
HerramientasBlog
Log in
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2025-68664-LangGrinch-PoC — Un marco de pruebas para identificar y demostrar vulnerabilidades de deserialización en LangChain Core (<0.3.81). Solo para uso educativo. | Kitploit
Herramientas/GitHubGitHub/ak-cybe/cve-2025-68664-langgrinch-poc
Análisis de VulnerabilidadesAnálisis de CódigoExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónDetección de SecretosAprendizaje y EducaciónDesarrollo de PayloadsSeguridad de IA
GitHubak-cybe/cve-2025-68664-langgrinch-poc

CVE-2025-68664-LangGrinch-PoC

Un marco de pruebas para identificar y demostrar vulnerabilidades de deserialización en LangChain Core (<0.3.81). Solo para uso educativo.

Ver Repositorio
3222hace 9 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Banner de cabecera

Typing SVG

Severidad Tipo Nombre clave Estado CWE


📑 Índice

  • 🎯 Resumen Ejecutivo
  • 📂 Estructura del Proyecto
  • 🚀 Inicio Rápido
  • 🐛 Análisis Profundo de la Vulnerabilidad
  • 🔬 Análisis Técnico de Causa Raíz
  • ⚔️ Metodología de Cadena de Ataque
  • 💀 Arsenal de Payloads (55+)
  • 🎮 Guía de Estrategia del Operador
  • 🛡️ Mitigación y Defensa
  • 📚 Referencias y Créditos

📂 Estructura del Proyecto```

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

## 🚀 Inicio Rápido

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

# Install dependencies
pip install -r requirements.txt

Uso```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 de hacker"/>
  <img src="https://assets.kitploit.com/production/public/readmes/15055/0751965da24039c9facbe6006461ec38a66ff560b42dc590d1964f43f7f9853d.gif" width="200" alt="GIF de seguridad"/>
  GIF de Matrix
</p>

---

## 🎯 Resumen Ejecutivo

**CVE-2025-68664 (Nombre en clave: LangGrinch)** es una **vulnerabilidad crítica de inyección de serialización** descubierta en el paquete **LangChain Core de Python**. Esta vulnerabilidad permite a los atacantes inyectar marcadores `lc` maliciosos a través de salidas de LLM o diccionarios controlados por el usuario, permitiendo:

1. 🔑 **Extracción de secretos del entorno** (claves API, contraseñas de BD)
2. 🌐 **Ataques SSRF** (accediendo a servicios internos)
3. 💀 **Ejecución remota de código** (a través de la cadena SSTI de Jinja2)
4. 📂 **Acceso al sistema de archivos** (lectura de archivos sensibles)

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

### ⚡ Estadísticas rápidas

| 🔥 Métrica | 📊 Valor |
|-----------|----------|
| **ID de CVE** | CVE-2025-68664 |
| **Nombre en clave** | LangGrinch |
| **Tipo de ataque** | Inyección de deserialización |
| **Autenticación requerida** | No (Inyección de prompt) |
| **Complejidad** | BAJA |

</td>
<td>

### 🎯 Versiones afectadas

| 📌 Propiedad | 📝 Valor |
|-------------|----------|
| **Paquete** | langchain-core |
| **Vulnerable** | < 0.3.81, >= 1.0.0 < 1.2.5 |
| **Parcheado** | 0.3.81+, 1.2.5+ |
| **Impacto** | Secretos + RCE |
| **CWE** | CWE-502 |

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

---

## 🐛 Inmersión profunda en la vulnerabilidad

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

### 📋 Resumen técnico

| Propiedad | Valor |
|----------|-------|
| 🆔 **ID de CVE** | CVE-2025-68664 |
| 🏷️ **Nombre en clave** | LangGrinch |
| 📊 **Gravedad** | CRÍTICA 🔴 |
| 🔗 **CWE** | CWE-502 (Deserialización de datos no confiables) |
| 📦 **Paquete afectado** | `langchain-core` |
| ⚠️ **Versiones vulnerables** | `< 0.3.81` AND `>= 1.0.0, < 1.2.5` |
| ✅ **Versiones parcheadas** | `0.3.81+`, `1.2.5+` |

### 🤖 ¿Qué es LangChain?

LangChain es un popular framework de Python utilizado para construir aplicaciones con **Modelos de Lenguaje de Gran Escala (LLMs)**. Se despliega ampliamente en diversas industrias:

| 🏢 Caso de uso | 📝 Descripción |
|-------------|----------------|
| 🤖 **Chatbots de IA** | Servicio al cliente, agentes de soporte |
| 🔍 **Sistemas RAG** | Generación Aumentada por Recuperación |
| 🔧 **Agentes de IA** | Ejecución autónoma de tareas |
| 📊 **Procesamiento de datos** | Análisis de documentos, resumen |
| 🔄 **Automatización de flujos de trabajo** | Pipelines impulsados por IA |

### 🔧 Causa raíz técnica

El formato de serialización interno de LangChain utiliza un marcador especial: la **clave `lc`**. Cuando un diccionario contiene la clave `lc`, el deserializador de LangChain lo trata como un "objeto serializado confiable de LangChain".

**El error es:**

- Las funciones `dumps()` / `dumpd()` NO escapan/neutralizan la clave `lc` en diccionarios controlados por el usuario/LLM
- Durante la rehidratación mediante `load()` / `loads()`, la estructura inyectada se procesa como un **objeto interno**```
🔓 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                                 │
└─────────────────────────────────────────────────────────────────┘

🔬 Análisis Técnico de Causa Raíz

🎯 El Problema del Marcador "lc"

Descargar herramienta