pgAdmin Query Tool RCE (CVE-2025-2945) – إثبات المفهوم باستخدام بايثون
⚠️ إخلاء مسؤولية
يحتوي هذا المستودع على استغلال إثبات المفهوم لـ CVE-2025-2945، وهو ثغرة حرجة لتنفيذ الأوامر عن بُعد في إصدارات pgAdmin 4 قبل 9.2. استخدم هذا الكود فقط في البيئات التي تملكها أو لديك إذن صريح لاختبارها. المؤلف غير مسؤول عن أي إساءة استخدام أو ضرر ناتج عن هذا البرنامج.
يوفر هذا المستودع سكربت بايثون مستقلًا — pgadmin_rce.py — يحاكي وظيفة وحدة Metasploit لـ CVE-2025-2945. عند تشغيله ضد مثيل pgAdmin 4 الضعيف (الإصدارات 8.10–9.1)، فإنه سيقوم بـ:
المصادقة على pgAdmin 4 باستخدام بيانات اعتماد صالحة.
تهيئة جلسة أداة الاستعلام (محرر SQL).
اكتشاف معرّف اتصال خادم صالح (مجموعة الخادم ومعرّف الخادم).
إرسال حمولة خبيثة عبر معامل query_commited لتفعيل eval() على الخادم.
ملاحظة استجابة HTTP 500 (تشير إلى أن الحمولة نُفِّذت على الجزء الخلفي).
نظرًا لأن نقاط النهاية الضعيفة تعتمد على دالة eval() المدمجة في بايثون دون تعقيم لإدخال المستخدم، يمكن للمستخدم المصادق إجبار pgAdmin على تشغيل كود بايثون تعسفي على الجهاز المضيف، مما يؤدي إلى تنفيذ أوامر عن بُعد كامل.
تفاصيل الثغرة (CVE-2025-2945)
البرنامج المتأثر:
إصدارات pgAdmin 4 من 8.10 حتى 9.1 (شاملة)
تم الإصلاح في:
إصدار pgAdmin 4 9.2 (صدر في 4 أبريل 2025)
درجة CVSS v3.1: 9.9 (حرجة)
الأثر:
يمكن لمهاجم مصادق إرسال معامل query_commited (أو high_availability في وحدة النشر السحابي) مُصمم خصيصًا إلى استدعاء eval() على الخادم، مما يؤدي إلى تنفيذ كود تعسفي تحت حساب خدمة pgAdmin.