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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-41651 — إثبات مفهوم لاستغلال CVE-2026-41651، وهو تصعيد صلاحيات محلي من نوع TOCTOU في PackageKit، مع تحليل تقني ومنطق كشف وإرشادات معالجة. | Kitploit
أدوات/GitHubGitHub/baph00met/cve-2026-41651
تصعيد الامتيازاتتحليل الثغرات الأمنيةالاستغلالاختبار الاختراقالفريق الأحمرمختبرات وتدريب عملي
GitHubbaph00met/cve-2026-41651

CVE-2026-41651

إثبات مفهوم لاستغلال CVE-2026-41651، وهو تصعيد صلاحيات محلي من نوع TOCTOU في PackageKit، مع تحليل تقني ومنطق كشف وإرشادات معالجة.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-41651 — PackageKit TOCTOU تصعيد الامتيازات المحلي

التصنيف: أداة تقييم الفريق الأرجواني
للاستخدام المصرح به فقط. هذه الوثيقة والبرنامج النصي للاختبار المرفق مخصصان حصريًا للتحقق الأمني الداخلي على الأنظمة التي تم الحصول على إذن كتابي لها.


إثبات الاستغلال

إثبات الاستغلال


جدول المحتويات

  1. نظرة عامة على الثغرة
  2. التحليل الفني
  3. وصف البرنامج النصي للاختبار
    • السلوك
    • دعم البيئات المحصّنة
    • التوافق
  4. مؤشرات الاختراق
    • نظام الملفات
    • العمليات والتنفيذ
    • نشاط D-Bus
    • أنماط سجلات التدقيق
    • آثار مدير الحزم
    • آثار تصعيد الامتيازات
  5. منطق الكشف
  6. الأنظمة والإصدارات المتأثرة
  7. المعالجة
  8. المراجع

نظرة عامة على الثغرة

الحقلالقيمة
معرف CVECVE-2026-41651
CWECWE-367 — سباق التحقق من الوقت مقابل وقت الاستخدام (TOCTOU)
المكوّنPackageKit (packagekitd, خدمة D-Bus)
المتأثرPackageKit ≤ 1.3.4
تم الإصلاح فيPackageKit 1.3.5
الأثرتصعيد الامتيازات المحلي → الجذر
ناقل الهجوممحلي / D-Bus (جلسة مستخدم غير مميز)
تم الكشف2026-04-22 (فريق الاختراق الأحمر لـ Deutsche Telekom)
النشرةGHSA-f55j-vvr9-69xv
التزام الإصلاح76cfb675fb31acc3ad5595d4380bfff56d2a8697

PackageKit هي طبقة تجريد D-Bus لإدارة حزم النظام، وهي موجودة افتراضيًا على أجهزة سطح المكتب القائمة على GNOME عبر Debian وUbuntu وFedora وRHEL وSUSE وArch Linux. نظرًا لأنها تتوسط عمليات الحزم المميزة نيابة عن المستخدمين غير المميزين، فإن وجود خلل في تدفق التفويض الخاص بها له تأثير جذري على مستوى النظام بأكمله.


التحليل الفني

السبب الجذري

pk-transaction.c (قبل الإصدار 1.3.5) لم يفرض حارس حالة على إعادة استدعاء طرق الإجراء. يمكن لعميل D-Bus استدعاء InstallFiles (أو طرق إجراء أخرى) عدة مرات على نفس كائن المعاملة بعد أن انتقل بالفعل خارج PK_TRANSACTION_STATE_NEW.

سلسلة الهجوم

المهاجم (غير مميز)
  │
  ├─① CreateTransaction()          → PackageKit يُرجع مسار كائن المعاملة (tid)
  │
  ├─② InstallFiles(tid, FLAG_SIMULATE=4, [dummy.pkg])
  │       PackageKit يضع فحص تفويض polkit في قائمة الانتظار لـ dummy.pkg.
  │       لا يحدث أي تثبيت بعد — SIMULATE تعني تشغيل تجريبي فقط.
  │
  ├─③ InstallFiles(tid, FLAG_NONE=0, [payload.pkg])   ← نافذة TOCTOU
  │       إعادة استدعاء على نفس tid قبل اكتمال التفويض.
  │       الإصدارات المعرضة تستبدل المعاملات في قائمة الانتظار بـ payload.pkg.
  │
  └─④ polkit يمنح التفويض (وافق المستخدم أو تفويض تلقائي)
          packagekitd يثبّت payload.pkg كجذر.
          سكربت postinst/post الخاص بالحزمة: install -m 4755 /bin/bash /tmp/.suid_bash
          المهاجم ينفذ /tmp/.suid_bash -p  →  قشرة جذر.

لماذا يفوز السباق

الخطوتان ② و③ تُرسلان كاستدعاءات D-Bus غير متزامنة غير محظورة على نفس الاتصال وتُفرَّغان في كتابة واحدة. تصل الرسالتان إلى packagekitd قبل أن يتمكن من معالجة ② وتقديم آلة الحالة، مما يترك نافذة TOCTOU مفتوحة. يضيف الإصلاح في 1.3.5 فحص حالة صريحًا يُرجع PK_TRANSACTION_ERROR_INVALID_STATE على أي إعادة استدعاء بعد PK_TRANSACTION_STATE_NEW.


وصف البرنامج النصي للاختبار

الملف: cve-2026-41651-purpleteam.py
اللغة: Python 3
التبعيات: python3-gi (ربط GObject introspection / GLib/Gio)

الغرض

يوضح قابلية استغلال CVE-2026-41651 على نظام اختبار مُجهّز لأغراض:

  • التحقق مما إذا كان إصدار PackageKit المثبت معرضًا للخطر
  • توليد بيانات IOC واقعية لضبط SIEM/EDR
  • اختبار تغطية الكشف قبل وبعد التصحيح

السلوك

المرحلةالإجراء
الإعداديفحص /proc/mounts لاختيار دليل إسقاط SUID/قابل للتنفيذ، ويضبط umask(022)، ويطبق chmod صريحًا على جميع مخرجات البناء، ثم يبني حزمة وهمية وحزمة حمولة في /tmp
الاستغلاليفتح اتصال D-Bus للنظام، وينشئ معاملة PackageKit، ويطلق سباق الاستدعاءين
الحمولةسكربت ما بعد التثبيت في الحزمة ينسخ /bin/bash إلى <drop_dir>/.suid_bash بالوضع 04755، المالك root. يتم تحديد دليل الإسقاط في وقت التشغيل (انظر دعم البيئات المحصّنة)
التصعيديتحقق من وجود ثنائي SUID (مهلة 90 ثانية)، ثم ينفذ execl عليه مع -p للحصول على قشرة جذر
التنظيفيزيل ملفات .deb/.rpm المؤقتة عند الخروج (نجاحًا أو فشلًا)

دعم البيئات المحصّنة

يمكن للأنظمة المحصّنة افتراضيًا حظر الاستغلال عند نقطتين مستقلتين. يتعامل البرنامج النصي مع كلتيهما تلقائيًا.

1. umask تقييدي (027 / 077)

يؤدي umask الموروث من العملية بقيمة 027 أو 077 إلى إنتاج mkdir() لأدلة 750 أو 700. يجب على كل من dpkg-deb وrpmbuild اجتياز شجرة البناء الكاملة — إذا كان أي دليل غير قابل للقراءة يفشل البناء بصمت.

الإصلاح المطبق: يتم استدعاء os.umask(0o022) عند بدء التشغيل قبل إنشاء أي ملف أو دليل. بالإضافة إلى ذلك، يتلقى كل دليل وملف في شجرة البناء chmod صريحًا فور الإنشاء (0o755 للأدلة والسكربتات، 0o644 لملفات البيانات)، بحيث تكون الأذونات الصحيحة مضمونة بغض النظر عن umask الموروث.

2. أعلام تحميل nosuid / noexec على /tmp

العلمالتأثير على الاستغلال
nosuidالنواة تزيل بصمت بت SUID من أي ملف مخزن على نظام الملفات هذا — bash المنسوخ لا يصبح جذرًا أبدًا
noexecلا يمكن تنفيذ ثنائي SUID على الإطلاق

الإصلاح المطبق: عند بدء التشغيل، يقرأ _find_suid_dir() ملف /proc/mounts ويختبر الأدلة المرشحة بترتيب الأفضلية حتى يجد نظام ملفات لا يحتوي على أي من العلمين. يتم بعد ذلك دمج المسار المُحل في سكربت ما بعد التثبيت للحمولة ويُستخدم للتحقق والتنفيذ.

الأولويةالمرشحالتحصين النموذجي
1/var/tmpنادرًا ما يحمل nosuid/noexec؛ يبقى بعد إعادة التشغيل
2/dev/shmtmpfs، عادةً متساهل؛ يُمسح عند إعادة التشغيل
3/tmpغالبًا محصّن على أنظمة CIS/STIG
4$HOMEالملاذ الأخير؛ دائمًا قابل للكتابة من قبل المستخدم

إذا كانت جميع المرشحات محظورة يخرج البرنامج النصي برسالة خطأ واضحة بدلاً من الفشل بصمت.

التوافق

عائلة التوزيعاتأداة الحزمتم الاختبار
Debian / Ubuntudpkg-deb✓
RHEL / Fedorarpmbuild✓
SUSE / openSUSErpmbuild✓

مؤشرات الاختراق

تُدرج مؤشرات الاختراق من المستوى العام/البنية التحتية وصولًا إلى آثار البرنامج النصي المحددة. سيكتشف الكشف المبني على المؤشرات العامة هذه الثغرة بغض النظر عن متغير PoC المستخدم.

نظام الملفات

تنزيل الأداة