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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-2005 — PoC لـ CVE-2026-2005 | Kitploit
أدوات/GitHubGitHub/var77/cve-2026-2005
تصعيد الامتيازاتتحليل الذاكرة الجنائيتحليل الثغرات الأمنيةالاستغلالالتعلم والتعليمأمن قواعد البياناتاستغلال الملفات الثنائية
GitHubvar77/cve-2026-2005

CVE-2026-2005

PoC لـ CVE-2026-2005

عرض المستودع
265منذ 3 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-2005 - استغلال تجاوز سعة الكومة في pgcrypto الخاص بـ PostgreSQL

استغلال (PoC) لتجاوز سعة مخزن مؤقت قائم على الكومة (heap-based buffer overflow) في تحليل مفتاح جلسة PGP داخل امتداد pgcrypto الخاص بـ PostgreSQL، مما يؤدي إلى قراءة/كتابة عشوائية في الذاكرة وتصعيد امتيازات إلى صلاحيات المستخدم الخارق (superuser).

للحصول على التفاصيل التقنية الكاملة، راجع التنبيه الأمني الصادر عن Zeroday Cloud.

العرض التوضيحي

PoC Demo

الاستخدام

1. تجميع PostgreSQL

استنسخ PostgreSQL وقم بتجميعه من الالتزام (commit) القابل للاستغلال بحيث تتطابق إزاحات رموز الملف الثنائي تمامًا. يحل الاستغلال قاعدة ASLR بمطابقة المؤشرات المسرَّبة مع إزاحات رموز ELF - البنيات أو الإصدارات المختلفة ستكون لها إزاحات مختلفة وستفشل.

root@kitploit:~
git clone https://github.com/postgres/postgres.git
cd postgres
git checkout 4b324845ba5d24682b9b3708a769f00d160afbd7
./configure \
    --prefix="$HOME/projects/pg/pgsql" \
    --with-libxml \
    --with-libxslt \
    --enable-debug \
    --with-ssl=openssl
make -j$(nproc)
make install-world-bin

2. تثبيت تبعيات Python

root@kitploit:~
pip install -r requirements.txt

3. تشغيل الاستغلال

root@kitploit:~
python poc.py \
    --binary "$HOME/projects/pg/pgsql/bin/postgres" \
    --dbname test-db \
    --host 127.0.0.1 \
    --port 5432 \
    --user test-user \
    --password secret \
    --cmd id

الخيارات

سير الاستغلال

ينفّذ الاستغلال عمليته على 7 مراحل:

  1. تسريب مؤشر الكومة - رسالة PGP مُعدَّة بعناية تُتلف ترويسة كتلة malloc الخاصة بمخزن mdst المؤقت. عندما يستدعي PostgreSQL الدالة pfree() على الكتلة التالفة، يُصدر المُخصِّص (allocator) خطأً يحتوي عنوان المؤشر، مسرّبًا موقع mdst->data في الكومة.

  2. قراءة عشوائية - تجاوز ثانٍ يكتب فوق mdst->data ليجعله يشير إلى (leaked_ptr - 0x10000). بعد فك التشفير، تُرجع mbuf_steal_data() محتويات ذلك العنوان كمخرجات مفكوكة التشفير، مفرّغةً ذاكرة الكومة التي قد تحتوي مؤشرات كود قديمة (stale).

  3. فحص المؤشرات - يُفحص التفريغ السداسي العشري (hex dump) بحثًا عن قيم 8 بايتات بالترتيب الصغير (little-endian) تبدو كعناوين كود (>= 0x500000000000) ولكنها ليست في منطقة الكومة. هذه هي مؤشرات PIE (الملف التنفيذي المستقل عن العنوان - Position Independent Executable) المرشحة.

  4. التصويت على قاعدة PIE - يُختبر كل عنوان مرشح مقابل إزاحات رموز ELF من الملف الثنائي postgres. لكل زوج (addr - sym_offset) يتطابق فيه إزاحة الصفحة (page offset)، يُحتسب صوت. تُحتفظ بالمرشحين الحاصلين على 10+ أصوات؛ القاعدة الأصغر (نظرًا لأن PIE هو مقطع ELF المُعيَّن في أقل عنوان) مرتبةً حسب الأصوات هي المرشح الأعلى.

  5. التحقق من قاعدة PIE - باستخدام بدائية القراءة العشوائية، يقرأ الاستغلال CurrentUserId عند ويقارنه مع OID المعروف للجلسة. أي تطابق يؤكد قاعدة PIE.

المتطلبات

  • Python 3.10+
  • psycopg2-binary, pwntools, pycryptodome (pip install -r requirements.txt)
  • PostgreSQL مُجمَّعة من الالتزام القابل للاستغلال (4b324845) مع تفعيل pgcrypto

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

إثبات المفهوم (PoC) هذا مخصص لأغراض البحث التعليمي والدفاعي فقط. استخدمه فقط ضد أنظمة تملكها أو لديك إذن صريح باختبارها.

المراجع

  • CVE-2026-2005: تجاوز سعة عدد صحيح (Integer Overflow) في pgcrypto الخاص بـ PostgreSQL يؤدي إلى تنفيذ كود عن بُعد (RCE)
تنزيل الأداة
الوسيطالافتراضيالوصف
--binary(الملف الثنائي postgres)مسار الملف الثنائي postgres لاستخراج الرموز
--dbnamepostgresاسم قاعدة البيانات المستهدفة
--hostlocalhostمضيف PostgreSQL
--port5432منفذ PostgreSQL
--userpostgresمستخدم قاعدة البيانات
--password(فارغ)كلمة مرور قاعدة البيانات
--cmdwhoamiأمر نظام التشغيل الذي سيُنفَّذ بعد تصعيد الامتيازات
--gdb(علامة)إرفاق GDB عبر tmux عند نقطة التجاوز
(candidate_base + current_user_offset)
  • كتابة عشوائية - يُتلف التجاوز ترويسَتي MBuf لكل من msrc وmdst. تشير msrc->data/read_pos المُزيَّفة إلى حزمة مدمجة مشفَّرة بمفتاح متماثل (sym-encrypted) تحتوي OID المستخدم الخارق (10) بصيغة مشفَّرة. وتشير mdst->data المُزيَّفة إلى CurrentUserId - 4 (الـ -4 يراعي أن SET_VARSIZE في pgp-pgsql.c:533 يكتب طول المخرجات في أول 4 بايتات).

  • تصعيد الامتيازات - مع استبدال CurrentUserId بالقيمة 10 (المستخدم الخارق الأساسي - bootstrap)، ينفّذ COPY FROM PROGRAM أمر نظام التشغيل المحدد بصفة مستخدم النظام postgres.