
استغلال إثبات مفهوم بلغة Python للثغرة CVE-2026-106173، وهي كتابة ملف عبر اجتياز المسار في gRPC دون مصادقة في Fortinet FortiSIEM تتيح تنفيذ أوامر عن بُعد بشكل أعمى.
يحتوي هذا المستودع على إثبات مفهوم (proof of concept) للثغرة CVE-2026-106173، وهي ثغرة تنفيذ تعليمات برمجية عن بُعد دون مصادقة في Fortinet FortiSIEM.
يعالج معالج QueryResultReq في FortiSIEM gRPC البيانات الوصفية غير الموثوقة دون التحقق السليم من المسار. ومن خلال إنشاء بيانات وصفية تحتوي على تسلسلات اجتياز المسار (../) وحقن بايت NUL ضمن طبقات ترميز HTTP/2 وHPACK في gRPC، يمكن للمهاجم كتابة ملفات عشوائية على نظام الملفات.
يتوفر تحليل تقني يغطي السبب الجذري وتفاصيل الاستغلال ومؤشرات الاختراق على مدونة أبحاث الهجمات الخاصة بـ Horizon3.ai:
% python3 CVE-2026-106173.py -h
usage: CVE-2026-106173.py [-h] -t TARGET [-c COMMAND] [-p PORT] [--plaintext]
[--dry-run]
options:
-h, --help show this help message and exit
-t TARGET, --target TARGET
IP or hostname of the FortiSIEM instance
-c COMMAND, --command COMMAND
Command to execute on the target
-p PORT, --port PORT FortiSIEM gRPC port (default: 27918)
--plaintext Use HTTP/2 without TLS
--dry-run Display the request without sending
تنفيذ أمر عشوائي:
python3 CVE-2026-106173.py -t 10.0.18.x -c 'id'
ملاحظة: التنفيذ يتم بشكل أعمى (blind)، ويستغرق ما يصل إلى 60 ثانية حتى تُفعّل مهمة cron تنفيذ السكربت الذي استبدلناه.
تم إنشاء هذا البرنامج لأغراض البحث الأكاديمي فقط ولتطوير تقنيات دفاعية فعّالة، وهو غير مخصص للاستخدام في مهاجمة الأنظمة إلا حيث يكون ذلك مصرحًا به صراحةً." لا يتحمل القائمون على المشروع أي مسؤولية عن سوء الاستخدام. استخدمه بمسؤولية.