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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-41651 — تصعيد الامتيازات محليًا عبر حالة سباق TOCTOU في PackageKit. | Kitploit
أدوات/GitHubGitHub/gbuyssens/cve-2026-41651
تصعيد الامتيازاتتحليل الثغرات الأمنيةالاستغلالCTFاختبار الاختراق
GitHubgbuyssens/cve-2026-41651

CVE-2026-41651

تصعيد الامتيازات محليًا عبر حالة سباق TOCTOU في PackageKit.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-41651

root@kitploit:~
CVSS 3.x : 7.8 HIGH
CWE      : CWE-367 (Time-of-Check Time-of-Use)
Fix      : PackageKit 1.3.5+
Affects  : PackageKit 1.0.2 – 1.3.4

تصعيد محلي للامتيازات عبر حالة سباق TOCTOU في معالج معاملات D-Bus الخاص بـ PackageKit.
يمكن لأي مستخدم محلي غير مميّز تثبيت حزم عشوائية بصلاحيات الجذر — دون الحاجة إلى مصادقة تتجاوز امتلاك جلسة محلية.

للاختبار / الاستخدام المصرّح به فقط (HTB، CTF، أو مهمة ضمن نطاق مكتوب).


الاستخدام

root@kitploit:~
python3 exploit.py

هذا كل شيء. يُنشئ /tmp/.suid_bash، ثم ينفّذ exec داخل قشرة بصلاحيات الجذر.

مسار SUID مخصص أو مهلة زمنية:

root@kitploit:~
SUID_BIN=/dev/shm/.sh TIMEOUT=90 python3 exploit.py

المتطلبات

root@kitploit:~
apt install python3-gi dpkg-dev

يولّد الاستغلال حزمتَي .deb وقت التشغيل — لا حاجة إلى مترجم (compiler).


سبب الجذر

ثلاث علل في src/pk-transaction.c تتكاتف معًا:

العلة 1 — استبدال غير مشروط للعلامات (flags)

تستبدل InstallFiles() القيمَ cached_transaction_flags وcached_full_paths بدون أي فحص للحالة؛ إذ تستبدل مكالمة D-Bus ثانية على نفس المعاملة هذه القيم بلا تمييز — حتى أثناء تشغيل المعاملة بالفعل.

العلة 2 — حارس آلة الحالة الصامت

ترفض pk_transaction_set_state() الانتقالات الخلفية غير القانونية (مثل RUNNING→READY وغيرها) دون التراجع عن العلامات المستبدَلة من العلة 1. وتبقى العلامات التالفة قائمة.

العلة 3 — قراءة متأخرة للعلامات

يقرأ pk_transaction_run() القيمةَ cached_transaction_flags في وقت الإرسال (عند idle في GLib)، وليس في وقت التفويض. وبهذا يرى الطرف الخلفي علامات المهاجم.

مكافأة — SIMULATE تتجاوز polkit

إعداد PK_TRANSACTION_FLAG_SIMULATE (0x4) يتجاوز بالكامل فحص تفويض polkit. فتتم الموافقة على المكالمة الأولى دون أي تفاعل من المستخدم.


سلسلة الهجوم

root@kitploit:~
Attacker                         packagekitd
   │                                  │
   │  CreateTransaction()             │  state = NEW
   │─────────────────────────────────►│
   │                                  │
   │  InstallFiles(SIMULATE, dummy)   │  polkit skipped (SIMULATE)
   │─────────────────────────────────►│  state = READY, idle queued
   │                                  │
   │  InstallFiles(NONE, payload)     │  flags+paths overwritten
   │─────────────────────────────────►│  set_state(WAITING_FOR_AUTH) rejected
   │                                  │  state stays READY (BUG 2)
   │                                  │
   │                      [idle fires]│
   │                                  │  pk_transaction_run() reads NONE (BUG 3)
   │                                  │  → dpkg installs payload as root
   │                                  │  → postinst: chmod +s /tmp/.suid_bash
   │                                  │
   │  execv("/tmp/.suid_bash -p")     │
   │─────────────────────────────────►│  euid=0(root)

تصل المكالمتان قبل لحظة إطلاق idle الخاصة بـ GLib — فلا توجد سباق يجب كسبه؛ الأمر حتمي الحدوث.


الأنظمة المتأثرة

Ubuntu Desktop 18.04–26.04، وDebian Trixie، وFedora 43، وRockyLinux 10.1، وأي توزيعة توفّر PackageKit 1.0.2–1.3.4 مع تشغيل الخادم الخفي (daemon).


المعالجة

  1. الترقية إلى PackageKit 1.3.5+
  2. قم بتعطيل الخدمة إذا تعذّرت الترقية: systemctl mask packagekit
  3. يضيف الإصلاح حارس حالة: transaction->state != PK_TRANSACTION_STATE_NEW ← ارفض

المراجع

  • NVD — CVE-2026-41651
  • استشارة GitHub — GHSA-f55j-vvr9-69xv
  • الالتزام بالإصلاح
تنزيل الأداة