Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
postgres-basebackup-symlink — PostgreSQL 18.6 - عالي - عن بُعد - كتابة ملفات - pg_basebackup يتبع رابطًا رمزيًا مطلقًا في tar متبقٍ من CVE-2026-6475 | Kitploit
أدوات/GitHubGitHub/abraxas/postgres-basebackup-symlink
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالأوراق والأبحاثأمن قواعد البياناتمختبرات وتدريب عملي
GitHub
abraxas/postgres-basebackup-symlink

postgres-basebackup-symlink

PostgreSQL 18.6 - عالي - عن بُعد - كتابة ملفات - pg_basebackup يتبع رابطًا رمزيًا مطلقًا في tar متبقٍ من CVE-2026-6475

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

الأكثر شعبية

عرض الكل →

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

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

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

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

Abraxas Labs - postgres-basebackup-symlink

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  postgres-basebackup-symlink

التحليل المكتوب: https://abraxaslabs.tech/research/postgres-basebackup-symlink

postgres-basebackup-symlink

الفئة: كتابة ملفات الوصول: عن بُعد

PostgreSQL 18.6 (724edf9) - PostgreSQL Global Development Group

أضاف CVE-2026-6475 الدالة path_is_safe_for_extraction لأسماء أعضاء ملفات tar. لا تزال أهداف الروابط الرمزية المطلقة تتجاوز هذا الفحص حتى تعمل مساحات الجداول (tablespaces). بعد ذلك يقوم astreamer_file.c باستدعاء symlink() على الهدف، ثم يتبعه لاحقًا fopen(..., "wb"). الصيغة الافتراضية لـ pg_basebackup هي plain (-F p). تتحقق create_target_symlink في pg_rewind من المسار ولا تتحقق أبدًا من الرابط.

يمكن لمصدر خبيث يتحدث بروتوكول BASE_BACKUP أن يزرع رابطًا رمزيًا مطلقًا ويكتب فوق أي ملف يستطيع مستخدم النسخ الاحتياطي (backup UID) الكتابة إليه. نفس نموذج الضحية الخاص بـ 6475. هذا ليس إعادة تقديم لفحوصات أسماء الأعضاء.

المعرّفلا يوجد CVE بعد
الفئةكتابة ملفات (رابط رمزي مطلق في tar متبقٍّ من CVE-2026-6475)
الوصولعن بُعد (UI:R العميل مقابل PostgreSQL خبيث)
CWECWE-59، CWE-22
CVSSعالٍ: 8.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
المنتجPostgreSQL
المتأثروسم 18.6 REL_18_6 (724edf9bde9d356724ad384a2e196edc3c9f80f7)، pg_basebackup / pg_rewind داخل الشجرة
المصادقةتشغيل الضحية للأمر الافتراضي pg_basebackup -D <dir> مقابل مصدر يتحكم به المهاجم
الترخيصGNU Affero GPL v3.0
المختبر127.0.0.1 فقط

ما يمكن للمهاجم فعله

من يستطيع دفع مشغّل إلى تشغيل pg_basebackup -D مقابل خادم PostgreSQL الخاص به (نفس نموذج UI:R الخاص بـ CVE-2026-6475) يمكنه الكتابة خارج -D.

الصلاحيةالطريقة / نقطة الوصولمُثبت مختبريًا أم مُستنتج
السلامة: كتابة ملف خارج -Dtar خبيث في BASE_BACKUP: عضو typeflag '2' باسم نسبي آمن (pg_tblspc/16384) وهدف رابط مطلق، ثم عضو عادي تحت ذلك الاسم. extract_link ثم create_file_for_extract fopen(..., "wb") بدون O_NOFOLLOWمُثبت مختبريًا. كتب POSTGRES-BASEBACKUP-SYMLINK-WITNESS في /work/oracle/. يحتفظ الوجهة (Dest) بالرابط الرمزي. tar التحكم (بدون رابط رمزي) ترك oracle فارغًا وكتب PG_VERSION فقط داخل -D
السلامة: الكتابة فوق shell rc أو authorized_keys أو وحدة systemd للمستخدم أو crontabنفس نقطة الوصول، أي مسار يستطيع مستخدم العميل الكتابة إليهمُستنتج. لا يمس هذا المختبر تلك الملفات
الإتاحة: تحطيم إعدادات العميل أو مفاتيحهنفس الكتابةمُستنتج. لم يُثبت
استطلاع قرص العميلالاستخراج كتابة وليس قراءةمغلق
تجاوز .. أو أسماء الأعضاء المطلقةpath_is_safe_for_extractionمغلق. ذلك هو CVE-2026-6475
SQL غير مميز على الخادم / بروتوكول بدون مصادقةخادم 18.6 الافتراضيمغلق. هذا المتبقي في العميل
نسخ احتياطي بصيغة tar فقطpg_basebackup -F t يخزّن tar دون استخراجمغلق
تنفيذ أوامر عن بُعد (RCE) داخل postgresليس نقطة الوصول هذهمغلق

لدى pg_rewind نفس المتبقي في create_target_symlink / open(). هذا المختبر يشغّل pg_basebackup فقط.

كيف وجدته

ثبّتت postgres/postgres على REL_18_6 بعد موجة 18.6 (28 ثغرة CVE، إضافة إلى مجموعة 18.4/18.2 الموجودة أصلًا في هذه الشجرة). اثنتان وعشرون عملية بحث. الخادم الافتراضي، SQL غير مميز، بروتوكول بدون مصادقة: لا شيء عند هذا المستوى. كان CVE-2026-6475 هو الشقيق الذي يجب إعادة قراءته.

تُفحص أسماء الأعضاء. أما أهداف الروابط الرمزية المطلقة فلا تُفحص:

if (!is_absolute_path(linktarget) &&
    !path_is_safe_for_extraction(member->linktarget))
{
    pg_fatal("link target has unsafe path name: \"%s\"",
             member->linktarget);
}
extract_link(mystreamer->filename, linktarget);

create_file_for_extract لا يزال fopen(filename, "wb"). التعليق عند astreamer_file.c:351-356 يقول إن التعيين يُطبَّق دون التحقق من أن الرابط داخل pg_tblspc.

المنعطفات الخاطئة المسجَّلة سلفًا: التعامل مع 6475 كأنها مغلقة والانصراف عنها؛ توجيه -D إلى دليل بيانات حيّ؛ الكتابة فوق shell rc لأجل الاستعراض. خادم 18.6 الصادق لا يُصدر سوى روابط رمزية pg_tblspc/<oid> ويضع محتويات tablespace في أرشيف منفصل. مصدر خبيث يتحدث BASE_BACKUP يمكنه وضع العضو العادي اللاحق في نفس tar. تلك هي البقية.

المختبر

python3 postgres-basebackup-symlink-Abraxas-Labs.py

أو

cd lab
./run.sh

postgres:18.6 كصورة مصدر، تشغّل متحدث BASE_BACKUP. العميل هو pg_basebackup المضمّن من نفس الوسم (pg_basebackup (PostgreSQL) 18.6). عنوان الاسترجاع 127.0.0.1:19370. مشروع Compose postgres-basebackup-symlink. لا توجّه -D إلى دليل بيانات نشط.

SUCCESS postgres-basebackup-symlink control-inside=yes oracle-outside=yes dest-is-symlink=yes image=postgres:18.6 how=pg_basebackup POSTGRES-BASEBACKUP-SYMLINK-WITNESS

الإصلاح

تعامل مع أهداف الروابط الرمزية المطلقة على أنها غير آمنة ما لم يُعَد كتابتها بواسطة --tablespace-mapping. افتح ملفات الاستخراج باستخدام O_NOFOLLOW / lstat بحيث لا يمكن اتباع رابط مزروع. طبّق path_is_safe_for_extraction على link بالإضافة إلى path. ارفض أي عضو عادي يمر مساره عبر رابط رمزي خرج عن -D.

المراجع

  • github.com/postgres/postgres وسم REL_18_6 (724edf9bde9d356724ad384a2e196edc3c9f80f7)
  • src/fe_utils/astreamer_file.c · src/fe_utils/astreamer_tar.c
  • src/bin/pg_rewind/file_ops.c
  • تم إصلاح قريب (أسماء الأعضاء، وليس هذا الهدف): CVE-2026-6475
  • CWE-59 · CWE-22

الترخيص

GNU Affero GPL v3.0. راجع LICENSE. مختبر loopback فقط. دون أي ضمان.

تنزيل الأداة