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
تحليل الثغرات الأمنيةتحليل الكودالاستغلالاستغلال تطبيقات الويباختبار الاختراقكشف الأسرارالتعلم والتعليمتطوير الحمولاتأمن الذكاء الاصطناعي
GitHubak-cybe/cve-2025-68664-langgrinch-poc

CVE-2025-68664-LangGrinch-PoC

إطار اختبار لتحديد وإظهار ثغرات إلغاء التسلسل في LangChain Core (<0.3.81). للاستخدام التعليمي فقط

عرض المستودع
3222منذ 9 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

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

---

## 🎯 ملخص تنفيذي

**CVE-2025-68664 (الاسم الرمزي: LangGrinch)** هي **ثغرة حقن تسلسل** حرجة تم اكتشافها في حزمة **LangChain Core Python**. تسمح هذه الثغرة للمهاجمين بحقن علامات `lc` ضارة من خلال مخرجات LLM أو قواميس يتحكم فيها المستخدم، مما يتيح:

1. 🔑 **استخراج الأسرار البيئية** (مفاتيح API، كلمات مرور قواعد البيانات)
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="Bug GIF"/>
</p>

### 📋 نظرة عامة تقنية

| الخاصية | القيمة |
|----------|-------|
| 🆔 **CVE ID** | CVE-2025-68664 |
| 🏷️ **الاسم الرمزي** | LangGrinch |
| 📊 **الخطورة** | حرجة 🔴 |
| 🔗 **CWE** | CWE-502 (إلغاء تسلسل البيانات غير الموثوقة) |
| 📦 **الحزمة المتأثرة** | `langchain-core` |
| ⚠️ **الإصدارات المتأثرة** | `< 0.3.81` AND `>= 1.0.0, < 1.2.5` |
| ✅ **الإصدارات المصححة** | `0.3.81+`, `1.2.5+` |

### 🤖 ما هو LangChain؟

LangChain هو إطار عمل Python شائع يُستخدم لبناء تطبيقات باستخدام **نماذج اللغة الكبيرة (LLMs)**. وهو منتشر على نطاق واسع عبر مختلف الصناعات:

| 🏢 حالة الاستخدام | 📝 الوصف |
|-------------|----------------|
| 🤖 **روبوتات محادثة ذكية** | خدمة العملاء، وكلاء الدعم |
| 🔍 **أنظمة RAG** | التوليد المعزز بالاسترجاع |
| 🔧 **وكلاء AI** | تنفيذ المهام المستقلة |
| 📊 **معالجة البيانات** | تحليل المستندات، التلخيص |
| 🔄 **أتمتة سير العمل** | خطوط أنابيب مدعومة بالذكاء الاصطناعي |

### 🔧 السبب الجذري التقني

تستخدم آلية التسلسل الداخلية في LangChain علامة خاصة - وهي **مفتاح `lc`**. عندما يحتوي القاموس على مفتاح `lc`، يعامله مزيل التسلسل في LangChain على أنه "كائن متسلسل من LangChain موثوق."

**الخلل هو:**
- دوال `dumps()` / `dumpd()` لا تقوم بهروب/تعطيل مفتاح `lc` في القواميس التي يتحكم فيها المستخدم/LLM
- أثناء إعادة التمييه عبر `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"]`!
تنزيل الأداة