
إثبات مفهوم استغلال لـ CVE-2026-34990، وهو تصعيد امتيازات محلي في CUPS 2.4.16 عبر الكتابة التعسفية للملفات من خلال CUPS_CREATE_LOCAL_PRINTER ورمز مصادقة محلي تم التقاطه.
تصعيد الصلاحيات المحلي في CUPS 2.4.16 عبر الكتابة التعسفية للملفات من خلال CUPS_CREATE_LOCAL_PRINTER.
يسمح CUPS بإنشاء طابعات محلية مع تعيين device-uri إلى مسار file://. يؤدي إرسال مهمة طباعة باستخدام document-format: application/vnd.cups-raw و compression: gzip إلى قيام cupsd بفك ضغط بيانات المهمة وكتابتها مباشرة إلى ذلك المسار — بصلاحيات المستخدم الذي يعمل به cupsd (عادةً root أو حساب خدمة عالي الصلاحيات).
يمكن التقاط رمز المصادقة المحلي المطلوب لعمليات الإدارة من خلال توجيه cups-create-local-printer.test الخاص بـ ipptool إلى خادم IPP وهمي على localhost. عندما يتصل CUPS للمصادقة، يرسل ترويسة Authorization: Local <token>، والتي تعترضها قبل أن يتمكن CUPS من التحقق منها.
ipptool مع cups-create-local-printer.test موجهاً إلى الخادم الوهمي — يرسل CUPS رمز المصادقة المحلي الخاص به للمصادقة401 WWW-Authenticate: Local trc="y" على الاتصال الأول لالتقاط الرمز بشكل نظيفdevice-uri: file:///etc/sudoers.d/<user>-pwnsudo -n /bin/bashيحافظ استدعاء create_local_printer على مقبسه مفتوحاً خلال السباق — وهذا يبقي تسجيل الطابعة قيد التنفيذ بينما تصل عمليات الإدارة ومهمة الطباعة.
ipptool مثبت مع cups-create-local-printer.test (تثبيت CUPS القياسي)# writes /etc/sudoers.d/<your-username>-pwn by default
python3 exploit.py
# custom target
CUPS_TARGET=/etc/sudoers.d/youruser-pwn CUPS_ATTACKER=youruser python3 exploit.py
قم بتحرير SUDOERS_LINE في السكربت لاستخدام اسم المستخدم الفعلي الخاص بك — الافتراضي هو aporter.
يحاول الاستغلال حتى 12 مرة. كل محاولة تحذف الطابعة وتعيد إنشاءها لإعادة تعيين الحالة.
لاختبارات الأمان المصرح بها والبحث فقط.