
CVE-2023-40429: قد يتمكن تطبيق من الوصول إلى بيانات المستخدم الحساسة.
HostName هو تطبيق نموذجي يوضح كيف يمكن لتطبيق تابع لجهة خارجية الوصول إلى اسم جهاز المستخدم دون الحاجة إلى صلاحية com.apple.developer.device-information.user-assigned-device-name.
في iOS 16، أضافت Apple صلاحية com.apple.developer.device-information.user-assigned-device-name لمنع تطبيقات الجهات الخارجية من تتبع بصمة المستخدم عبر اسم الجهاز. ومع ذلك، تعطّلت واجهة برمجة التطبيقات ProcessInfo.processInfo.hostName في هذه العملية، والتي كانت تسمح لمطوري الجهات الخارجية بالحصول على اسم المضيف الشبكي للجهاز دون صلاحية. ورغم أن اسم المضيف ليس نسخة مطابقة تمامًا 1:1 لاسم الجهاز، إلا أنه قريب منه. على سبيل المثال، جهازي يحمل اسم Astronaut Sloth، مما يعطيني اسم مضيف Astronaut-Sloth.
عندما يصل مطور تابع لجهة خارجية إلى واجهة برمجة التطبيقات ProcessInfo.processInfo.hostName، يظهر للمستخدم طلب "السماح لـ بالتواصل مع أجهزة الشبكة المحلية". في iOS 15، كانت واجهة ProcessInfo.processInfo.hostName تُرجع localhost إذا رفض المستخدم هذا الطلب. ومع ذلك، في iOS 16 تعطّل هذا أيضًا - حيث كان اسم الجهاز يُرجَع دائمًا بغض النظر عن إدخال المستخدم.