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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-7867-disk2root | Kitploit
أدوات/GitHubGitHub/azqzazq1/cve-2026-7867-disk2root
تصعيد الامتيازاتتحليل الثغرات الأمنيةالاستغلالما بعد الاستغلالاختبار الاختراقالتعلم والتعليمالفريق الأحمراستغلال الملفات الثنائيةمختبرات وتدريب عملي
GitHubazqzazq1/cve-2026-7867-disk2root

CVE-2026-7867-disk2root

عرض المستودع
1منذ 2 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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





Filesystem.Mount → as-user Spoofing → Authorization Bypass → Root-context Mount → LPE


نظرة عامة

CVE-2026-7867 هي ثغرة تصعيد صلاحيات محلية في udisks2 تتعلق بطريقة D-Bus الخاصة بـ Filesystem.Mount، وخيار as-user، وتدفقات التركيب المُدارة عبر fstab، ومعالجة تفويض معيبة.

يحتوي هذا المستودع الخاص على ملاحظات البحث الفني ونصوص PoC المستخدمة للتحقق من المشكلة في بيئة مختبرية خاضعة للرقابة.

تم اكتشاف الثغرة والإبلاغ عنها بواسطة:

Azizcan Daştanazqzazq1
Özlem Ozanoz7oz7

تم تخصيص المعرف التالي للمشكلة:

root@kitploit:~
CVE-2026-7867

الملخص التنفيذي

تنتج الثغرة عن علاقة ثقة معيبة بين UID الحقيقي لمتصل D-Bus وUID المحسوب/الفعلي الناتج عن خيار التركيب as-user.

في التدفقات المعيبة، يمكن لمستخدم محلي غير ممتاز التأثير على مسار تنفيذ التركيب بحيث يتم تركيب نظام ملفات في سياق ممتاز/جذر دون سلوك تفويض PolicyKit المتوقع.

الخلل الجوهري ليس مجرد «خيارات تركيب يتحكم بها المستخدم».

المشكلة الفعلية هي:

يفشل udisks2 في التمييز باستمرار بين هوية المتصل الأصلية وهوية as-user المحسوبة أثناء تفويض وتنفيذ تركيب fstab.


الثغرة في لمحة


المنطقة المتأثرة

يرتبط المنطق المعيب بمسار معالجة تركيب fstab داخل udisks2، خاصةً عندما يتضمن طلب التركيب ما يلي:

root@kitploit:~
Filesystem.Mount
as-user
x-udisks-auth
user
users

المناطق الحساسة أمنيًا ذات الصلة هي:

root@kitploit:~
D-Bus caller identity
        ↓
as-user option handling
        ↓
fstab authorization logic
        ↓
PolicyKit decision flow
        ↓
root-context mount execution

تدفق الهجوم

root@kitploit:~
┌─────────────────────────────┐
│ Unprivileged Local User     │
└──────────────┬──────────────┘
               │
               │ Filesystem.Mount
               │ with as-user influence
               ▼
┌─────────────────────────────┐
│ udisks2 / udisksd           │
│ privileged system daemon    │
└──────────────┬──────────────┘
               │
               │ fstab logic evaluates
               │ user/auth options
               ▼
┌─────────────────────────────┐
│ Authorization Gap           │
│ mount_other_user not        │
│ enforced in skipped path    │
└──────────────┬──────────────┘
               │
               │ root-context branch reached
               ▼
┌─────────────────────────────┐
│ Filesystem Mounted          │
│ without expected auth flow  │
└──────────────┬──────────────┘
               │
               │ impact depends on mount flags
               ▼
┌─────────────────────────────┐
│ Local Privilege Escalation  │
│ controlled lab validation   │
└─────────────────────────────┘

السبب الجذري

ينبع السلوك المعيب من خلل في الخلط بين الهويات.

يمتلك النظام عدة مفاهيم للهوية:

root@kitploit:~
real D-Bus caller UID
computed as-user UID
effective mount UID
udisksd daemon privilege context

يفشل التدفق المعيب في فرض هذه الهويات بشكل متسق.

على وجه الخصوص:

  • يمكن أن يصبح mount_other_user صحيحًا بسبب استخدام as-user
  • يمكن لخيارات fstab مثل x-udisks-auth أو user أو users أن تؤثر على مسار التفويض
  • يمكن تخطي كتلة التفويض
  • لا يتم فرض فحص mount_other_user بشكل موثوق خارج تلك الكتلة
  • يمكن لمسار التركيب الوصول إلى فرع مخصص للتنفيذ الحقيقي من الجذر/المشرف
  • يتم التركيب بواسطة سياق الخفي الممتاز

النتيجة هي تجاوز لحدود الصلاحيات المحلية.


مشكلة x-udisks-auth

من المفترض أن يفرض خيار x-udisks-auth تدفق تفويض إداري عبر PolicyKit.

السلوك المتوقع:

root@kitploit:~
mount request
    ↓
attempt mount as caller
    ↓
permission/auth failure
    ↓
PolicyKit filesystem-fstab check
    ↓
admin approval
    ↓
mount as authorized privileged action

السلوك المعيب:

root@kitploit:~
mount request with as-user influence
    ↓
computed identity affects execution
    ↓
mount succeeds too early
    ↓
PolicyKit auth path is not reached as expected
    ↓
privileged mount state is achieved

وهذا يجعل النموذج الأمني المحيط بـ x-udisks-auth غير موثوق في المسار المعيب.


انتهاك النموذج الأمني

النموذج المتوقع:

root@kitploit:~
Unprivileged user
    ↓
D-Bus mount request
    ↓
PolicyKit / fstab authorization
    ↓
restricted mount behavior

النموذج المكسور:

root@kitploit:~
Unprivileged user
    ↓
D-Bus mount request with as-user spoofing
    ↓
authorization logic mismatch
    ↓
root-context mount execution

تتسم الثغرة بخطورة خاصة لأن الخدمة المتأثرة تعمل بصلاحيات مرتفعة.


الأثر

قد يسمح الاستغلال الناجح لمستخدم محلي غير ممتاز بتركيب نظام ملفات عبر udisks2 في مسار تنفيذ بسياق جذر دون طلب التفويض المتوقع.

اعتمادًا على نظام الملفات وعلمات التركيب، قد يشمل الأثر ما يلي:

  • تصعيد صلاحيات محلي
  • تركيب غير مصرح به لنظام ملفات بسياق جذر
  • تجاوز تفويض PolicyKit المتوقع
  • تركيب غير آمن لأجهزة مُدارة عبر fstab
  • تصعيد قائم على setuid في إعدادات مختبرية متأثرة
  • تنفيذ غير متوقع لملفات من أنظمة ملفات يتحكم بها المهاجم أو مُجهزة مسبقًا

شروط الاستغلال

هذه ثغرة محلية.

تشمل الشروط ذات الصلة ما يلي:


هيكل المستودع

root@kitploit:~
.
├── README.md
├── disk2root.sh              ← main exploit (self-contained LPE)
└── poc/
    ├── setup_lpe_env.sh       ← lab environment setup
    ├── f2_mount_as_user_bypass.sh
    ├── f2_check_nosuid.sh
    ├── f2_suid_test.sh
    ├── f2_final.sh
    └── cleanup_lpe_env.sh

الاستغلال — disk2root.sh

استغلال مُسلَّح مكتمل الذات. يبني حمولته الخاصة SUID بصلاحيات جذر، وينشئ صورة قرص مُجهزة، ثم يركّبها عبر تجاوز polkit باستخدام as-user=root، ويمنحك قشرة جذر.

بدء سريع

الخيار 1 — التشغيل بصلاحيات الجذر (يعمل في كل البيئات، بما في ذلك SSH):

root@kitploit:~
./disk2root.sh

يقوم النص تلقائيًا بما يلي:

  1. يترجم ملفًا ثنائيًا ثابتًا لقشرة SUID بصلاحيات جذر
  2. ينشئ صورة ext4 بحجم 32MB على جهاز loop
  3. يحقن الملف الثنائي بالإعداد uid=0 mode=4755 عبر debugfs
  4. يضيف إدخالًا إلى fstab مع x-udisks-auth
  5. ينتقل إلى مستخدم غير ممتاز عبر su
  6. يستدعي Filesystem.Mount مع as-user=root (تجاوز polkit)
  7. ينفذ الملف الثنائي SUID ← قشرة جذر
  8. ينظف كل شيء عند الخروج

لتحديد المستخدم الذي سيتم التصعيد منه:

root@kitploit:~
./disk2root.sh testuser

إذا لم يتم تحديد مستخدم، يختار النص أول مستخدم عادي على النظام أو ينشئ مستخدمًا مؤقتًا.


الخيار 2 — التشغيل كمستخدم غير ممتاز (سطح مكتب / جلسة نشطة):

root@kitploit:~
./disk2root.sh

على الأنظمة ذات جلسة polkit نشطة (تسجيل دخول سطح المكتب، GNOME/KDE)، يكون النص مكتمل الذات بالكامل — ينشئ جهاز loop خاصًا به عبر udisksctl أو D-Bus LoopSetup، ويقوم بالتركيب عبر as-user=root، ويصعّد الصلاحيات دون أي إعداد مسبق.


الخيار 3 — التشغيل كمستخدم غير ممتاز (SSH، بعد الإعداد):

إذا كانت البيئة مُجهزة مسبقًا (على سبيل المثال، بتشغيل poc/setup_lpe_env.sh بصلاحيات الجذر، أو بتشغيل سابق لـ ./disk2root.sh بصلاحيات الجذر)، يمكن لأي مستخدم غير ممتاز إعادة الاستغلال:

root@kitploit:~
./disk2root.sh

يكتشف النص تلقائيًا إدخالات fstab المعيبة ويستخدمها.


التنظيف

root@kitploit:~
./disk2root.sh --cleanup

يزيل جميع الآثار: إدخال fstab، جهاز loop، نقطة التركيب، المستخدم المؤقت.


تتابع الاستراتيجيات

عند تشغيله كمستخدم غير ممتاز، يجرب النص عدة مسارات بالترتيب:

root@kitploit:~
[A] Self-contained
    build payload → create ext4 image → debugfs inject SUID binary
    → loop-setup (python3 GIO / udisksctl) → mount as-user=root
    ✓ works on desktop sessions

[B] Fstab fallback
    scan /etc/fstab for x-udisks-auth / user / users entries
    → mount as-user=root → find SUID binary on mounted fs
    ✓ works on SSH when environment is prepared

مثال على المخرجات

root@kitploit:~
╔═════════════════════════════════════════════════════╗
║  CVE-2026-7867 — disk2root                          ║
║  udisks2 as-user polkit bypass → LPE root shell     ║
╚═════════════════════════════════════════════════════════╝

[*] uid=1002 (testuser) — exploiting...
    fstab: /dev/loop5 → /mnt/disk2root (x-udisks-auth)
    mounted: /mnt/disk2root
    nosuid: not set
    suid: pwn (4755 root:root)

╔═════════════════════════════════════════════════════╗
║  dropping into root shell — type 'exit' to return   ║
╚═════════════════════════════════════════════════════════╝

[+] root shell — uid=0 euid=0
root@target:/tmp#

المتطلبات


نصوص PoC (poc/)

نصوص تحقق فردية استُخدمت أثناء البحث. هذه هي اللبنات الأساسية التي قادت إلى disk2root.sh.

التدفق المختبري (باستخدام نصوص PoC الفردية)

root@kitploit:~
1. Run poc/setup_lpe_env.sh as root
2. su - testuser
3. Run poc/f2_mount_as_user_bypass.sh
4. Run poc/f2_final.sh for full validation
5. Run poc/cleanup_lpe_env.sh as root

أو ببساطة استخدم disk2root.sh الذي يجمع كل ما سبق.


الأولية التقنية

الأولية التي يثبتها هذا البحث هي:

root@kitploit:~
as-user option spoofing inside privileged mount orchestration

الانتقال الحرج هو:

root@kitploit:~
unprivileged D-Bus caller
        ↓
spoofed/computed mount identity
        ↓
authorization path confusion
        ↓
root-context mount execution

لهذا السبب تُصنَّف المشكلة كثغرة تصعيد صلاحيات محلية.


لماذا هذه الثغرة مهمة

يُعتبر udisks2 عادةً خفي إدارة تخزين ممتازًا موثوقًا.

الثغرة في هذه الطبقة عالية التأثير لأنها تقع بين:

root@kitploit:~
desktop/session users
D-Bus method calls
PolicyKit authorization
filesystem mount operations
root daemon privileges

يمكن أن يؤثر الخلل في معالجة الهوية هنا مباشرةً على حدود الصلاحيات المحلية.


أفكار للكشف

يمكن للمدافعين مراقبة نشاط التركيب المشبوه في udisks2 الذي يتضمن as-user.

مصادر تتبع مفيدة:

root@kitploit:~
udisksd logs
D-Bus method calls
PolicyKit logs
mount table changes
/proc/mounts
/etc/fstab
journalctl

أوامر مفيدة:

root@kitploit:~
findmnt
mount
cat /proc/mounts
journalctl -u udisks2
journalctl | grep -i udisks
journalctl | grep -i polkit

أنماط مشبوهة:

root@kitploit:~
non-root user triggering Filesystem.Mount
as-user=root usage
unexpected mount without PolicyKit prompt
mounts lacking nosuid/noexec/nodev
setuid execution from recently mounted filesystems
unexpected loop device mounts

التخفيف

تحديث udisks2

طبّق الإصلاح المقدم من البائع بمجرد توفره.

الإصدار المخطط للإصلاح:

root@kitploit:~
udisks 2.11.2

مراجعة إدخالات fstab

راجع الإدخالات التي تستخدم:

root@kitploit:~
x-udisks-auth
user
users

راجع بشكل خاص أنظمة الملفات التي يمكن أن تحتوي على محتوى قابل للتنفيذ أو setuid.


تقييد وصول القشرة المحلية

بما أنها ثغرة محلية، فإن تقليل الوصول المحلي غير الموثوق يقلل من التعرض للخطر.


مراقبة نشاط التركيب

راقب عمليات التركيب غير المتوقعة عبر:

root@kitploit:~
udisksd

خاصةً عند حدوثها بواسطة مستخدمين غير جذر.


فرض علمات تركيب أكثر أمانًا

حيثما أمكن، استخدم:

root@kitploit:~
nosuid
noexec
nodev

قد تقلل هذه العلمات من الأثر بعد التركيب.


تحصين قواعد PolicyKit

راجع قواعد PolicyKit المتعلقة بإجراءات تركيب udisks.

تأكد من أن المستخدمين غير الممتازين لا يمكنهم تفعيل مسارات التركيب الحساسة دون تفويض صريح.


اتجاه الإصلاح

يجب أن يضمن الإصلاح المتين ما يلي:

  • الحفاظ على UID الأصلي لمتصل D-Bus
  • ألا يحل UID as-user المحسوب محل هوية المتصل لأغراض التفويض
  • أن يفعّل mount_other_user دائمًا فحوصات PolicyKit المناسبة
  • أن يقتصر تنفيذ التركيب بسياق الجذر على تدفقات الجذر/المشرف المصرح بها فعليًا
  • أن يفرض x-udisks-auth المصادقة بشكل متسق
  • مراجعة مسارات التعليمات البرمجية ذات الصلة مثل معالجة أنظمة الملفات المشفرة

الجدول الزمني للإفصاح


الاعتمادات


خطة النشر العام

بعد رفع الحظر، يمكن تحويل هذا المستودع إلى مستودع بحثي عام يتضمن:

root@kitploit:~
docs/
├── technical-analysis.md
├── root-cause.md
├── lab-setup.md
├── exploit-flow.md
├── detection.md
└── mitigation.md

إضافات عامة موصى بها:

  • رابط CVE الرسمي
  • رابط نشرة Red Hat
  • رابط التصحيح من المنبع (upstream)
  • مصفوفة الإصدارات المتأثرة/المصححة
  • دليل إعادة إنتاج آمن
  • ملاحظات استخدام PoC خاضعة للرقابة
  • دليل الكشف والتحصين

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

هذا المستودع مخصص لأغراض البحث الأمني المصرح به والتنسيق مع البائع والتحقق الدفاعي فقط.

نصوص PoC مخصصة لبيئات الاختبار المعزولة.

لا تشغّل هذه النصوص على أنظمة لا تملكها أو ليس لديك إذن صريح لاختبارها.

المؤلفون غير مسؤولين عن إساءة استخدام هذا البحث.



CVE-2026-7867
udisks2 Local Privilege Escalation Research



تنزيل الأداة
الحقلالقيمة
CVECVE-2026-7867
المنتجudisks2
المكوّنFilesystem.Mount
نوع الهجومتصعيد صلاحيات محلي
الأوليةانتحال as-user
حدود الأمانهوية متصل D-Bus → تنفيذ تركيب ممتاز
طبقة التفويضتفويض تركيب PolicyKit / fstab
البائعRed Hat / upstream الخاص بـ udisks
الحالةتصحيح قيد الإعداد / إفصاح منسّق
الإصدار المخطط للإصلاحudisks 2.11.2
الشرطمطلوب
وصول مستخدم محلينعم
إصدار udisks2 معيبنعم
توفر وظيفة as-userنعم
هدف تركيب مناسب مُدار عبر fstabنعم
مسار تفويض معيبنعم
وصول عن بُعدلا
الأداةالغرضمطلوب
busctlاستدعاء تركيب عبر D-Busنعم
gccترجمة حمولة SUIDنعم (يرجع إلى نسخة bash)
mke2fsإنشاء صورة ext4نعم (الوضع المكتمل ذاتيًا)
debugfsحقن الملف الثنائي مع uid=0نعم (الوضع المكتمل ذاتيًا)
python3-giإعداد LoopSetup عبر D-Bus مع تمرير واصف الملفاختياري (وضع سطح المكتب)
udisksctlإعداد جهاز loopاختياري (وضع سطح المكتب)
النصالغرض
setup_lpe_env.shتحضير البيئة المختبرية (جهاز loop، fstab، مستخدم اختبار)
f2_mount_as_user_bypass.shالتحقق من تجاوز Filesystem.Mount باستخدام as-user=root
f2_check_nosuid.shالتحقق من علمات nosuid/noexec/nodev على التركيب المُتجاوز
f2_suid_test.shاختبار تنفيذ الملف الثنائي SUID على نظام الملفات المُركَّب
f2_final.shPoC شامل: الإعداد ← التجاوز ← التحقق من euid=0
cleanup_lpe_env.shاستعادة بيئة الاختبار
التاريخالحدث
2026-04-21تم إرسال التقرير إلى فريق أمن المنتجات في Red Hat
2026-04-21أكدت Red Hat استلام التقرير
2026-04-28أكد البائع وجود المنطق المعيب
2026-04-28طلب البائع نصوص PoC
2026-04-30طلب البائع تخصيص CVE
2026-04-30تم إرسال نصوص PoC إلى البائع
2026-05-03تمت مشاركة التصحيح الأولي من البائع
2026-05-05تمت مشاركة التصحيح المحدث من البائع
2026-05-05تم حجز CVE-2026-7867
2026-05-05تم وضع علامة «محلولة» على التذكرة
2026-05-07أشار البائع إلى أن الإصلاح مخطط له في udisks 2.11.2
الباحثGitHubالدور
Azizcan Daştanazqzazq1الاكتشاف، التحليل، تطوير PoC، التنسيق مع البائع
Özlem Ozanoz7oz7التعاون البحثي وائتمان الإفصاح