
CVE-2022-46718: قد يتمكن تطبيق من قراءة معلومات الموقع الحساسة.
باختصار: أضف فحص امتياز إلى parsecd
CoreParsecLocation هو تطبيق نموذجي يوضح كيف يمكن لتطبيق من طرف ثالث الوصول إلى الموقع الدقيق للمستخدم دون موافقة المستخدم أو إذنه. كما يوفر parsecd/CoreParsec معلومات مثل اقتراحات البحث الموضعية وبطاقات المعرفة ومعرّف مستخدم مؤقت. لحسن الحظ، لا أعتقد أن معرّف المستخدم يتم حفظه أو إعادة استخدامه في الوقت الحالي.
أثناء استكشافي الروتيني لأُطر العمل، لاحظت وجود NSXPCConnection نشط إلى parsecd. بعد بضعة أيام من التجريب، اكتشفت أن parsecd يستجيب لاستعلامات البحث من أي تطبيق طالما قمت بانتحال معلومات الترويسة الصحيحة. في هذه الحالة، استخدمت كلاس SPPARSession، الذي يُنشئ جلسة لـ Spotlight.
في البداية، افترضت أن كائن PARResponse لن يعيد سوى موقع GeoIP (وهو ليس مفيدًا كثيرًا بحد ذاته). ومع ذلك، بعد تجربة العديد من استعلامات البحث، اكتشفت أن البحث عن «مطاعم» يجعل parsecd يحصل على الموقع الدقيق للمستخدم. ثم أعاد إليّ معلومات الموقع عبر كائن PARReponse.
كما يعيد parsec معلومات إضافية، مثل نتائج الأخبار الموضعية واقتراحات البحث. لا أعتقد أن هذه تحتوي على أي معلومات تحدد هوية المستخدم في الوقت الحالي. بعد تقديم التقرير، أخطط لاستكشاف الاستجابات الإضافية بشكل أعمق.
parsecd موقعًا جديدًا، لكنني لم أرَ مؤشر موقع في شريط الحالة أثناء اختباراتي.Dynamic (تجدها هنا: https://github.com/mhdhejazi/Dynamic). هذه المكتبة غير مطلوبة لاستغلال parsecd، لكنها تسهّل استخدام واجهات برمجة تطبيقات الطرف الثالث دون ترويسات مكشوفة.parsecd سيعيد الموقع بدونه.