
إثبات مفهوم لـ CVE-2026-112445، وهو تصعيد امتيازات محلي في macOS حيث يستغل مستخدم وحدة تحكم غير مميز مهمة launchd com.apple.xpc.uscwoap وTIOCSTI للحصول على صلاحيات الجذر.
في عام 2020، طرح أحدهم سؤالاً على GitHub: ما هو uscwoap؟ لقد تحوّل macOS بالفعل إلى zsh، فلماذا لا يزال com.apple.xpc.uscwoap يستدعي Bash؟
أظهر أحد الردود إعدادات المهمة. كانت راية BootShell مضبوطة، وكانت جميع التدفقات القياسية الثلاثة موصولة بوحدة التحكم. بناءً على ذلك، اقترح المعلّق أن المهمة قد تكون معنية بإقلاع النظام من وضع المستخدم الواحد.
توجد إعدادات com.apple.xpc.uscwoap في دليل LaunchDaemons الخاص بالنظام. الحقول ذات الصلة موضّحة أدناه:
Label = com.apple.xpc.uscwoap
BootShell = true
ProcessType = Interactive
Program = /bin/bash
ProgramArguments = [bash, -sh]
StandardInPath = /dev/console
StandardOutPath = /dev/console
StandardErrorPath = /dev/console
تنتمي المهمة إلى نطاق النظام في launchd ولا تحدد حساباً أقل امتيازاً لتعمل تحته، لذا يعمل Bash بصلاحيات الجذر (root). يربط StandardInPath دخلها القياسي بـ /dev/console. يفسّر Bash المدخلات التي يتلقاها من هذا الجهاز على أنها أوامر.
يمكن لحساب غير إداري مسجّل الدخول إلى وحدة التحكم الرسومية النشطة تشغيل هذه المهمة عبر واجهة التحكم بالمهام في launchd دون بيانات اعتماد إدارية. تعمل عملية Bash الناتجة بمعرّف المستخدم UID 0. وعلى الرغم من راية BootShell، فإن مسار التشغيل هذا متاح أيضاً في جلسة سطح مكتب عادية.
تتلقى صدفة الجذر أوامرها من /dev/console. في جلسة تسجيل الدخول الرسومية هذه، يكون الجهاز مملوكاً للحساب غير الإداري، بينما تعمل عملية Bash التي تقرأ الأوامر منه بصلاحيات الجذر. لذلك يفصل حدّ امتيازات بين مصدر المدخلات والعملية التي تنفّذها.
يخدم مخرجات الطرفية وقائمة انتظار مدخلات الطرفية غرضين مختلفين: الأولى تعرض النص، بينما تحتفظ الثانية بالأحرف في انتظار أن يقرأها برنامج. لذلك فإن أي عملية قادرة على التأثير في قائمة انتظار المدخلات يمكنها التأثير في ما يقرأه Bash من الدخل القياسي.
TIOCSTI واجهة طرفية لمحاكاة المدخلات عبر إدراج أحرف في قائمة انتظار المدخلات. في الإصدارات المتأثرة، يمكن لعملية تعمل تحت حساب مستخدم وحدة التحكم الحالي استخدام هذه الآلية للتأثير في المدخلات على /dev/console. تقرأ صدفة الجذر التي أطلقتها مهمة النظام تلك الأحرف من الجهاز نفسه.
يفسّر Bash الأحرف على أنها أوامر وينفّذها بامتيازات الجذر الخاصة به. لا يجري مسار المدخلات هذا أي فحص للتصريح الإداري على العملية التي توفّر الأحرف، ما يسمح بتحوّل مدخلات من مستخدم غير ذي امتيازات إلى أوامر تُنفّذ بصلاحيات الجذر.
خصّصت Apple المعرّف CVE-2026-112445 لهذه المشكلة، لكنها لم تُدرج المعرّف في استشارتها الأمنية. سبب هذا الإغفال غير معروف.
يزيل macOS 27.2 إعدادات com.apple.xpc.uscwoap.