
CVE-2022-46718: एक ऐप संवेदनशील स्थान जानकारी पढ़ने में सक्षम हो सकता है।
tl;dr parsecd में एक एन्टाइटलमेंट जांच जोड़ें
CoreParsecLocation एक नमूना एप्लिकेशन है जो दर्शाता है कि कैसे कोई तृतीय-पक्ष ऐप उपयोगकर्ता की सहमति या अनुमति के बिना उसकी सटीक स्थिति तक पहुंच सकता है। parsecd/CoreParsec स्थानीयकृत खोज सुझाव, नॉलेज कार्ड और एक अस्थायी उपयोगकर्ता आईडी जैसी जानकारी भी प्रदान करता है। शुक्र है, मुझे नहीं लगता कि इस समय उपयोगकर्ता आईडी को संग्रहीत या पुनः उपयोग किया जाता है।
एक नियमित फ्रेमवर्क खोज के दौरान, मैंने parsecd के लिए एक सक्रिय NSXPCConnection देखा। कुछ दिनों की छेड़छाड़ के बाद, मैंने पाया कि parsecd किसी भी एप्लिकेशन से खोज क्वेरी का जवाब देगा, जब तक मैं सही हेडर जानकारी को स्पूफ करता हूं। इस मामले में, मैंने SPPARSession क्लास का उपयोग किया, जो स्पॉटलाइट के लिए एक सत्र सेट करता है।
पहले, मैंने मान लिया कि PARResponse ऑब्जेक्ट केवल एक GeoIP स्थान लौटाएगा (जो अपने आप में बहुत उपयोगी नहीं है)। हालांकि, कई खोज क्वेरीज के बाद, मैंने पाया कि "restaurants" खोजने से parsecd उपयोगकर्ता की सटीक स्थिति प्राप्त कर लेता है। फिर यह PARReponse ऑब्जेक्ट के माध्यम से मुझे स्थान जानकारी लौटाता है।
parsec अतिरिक्त जानकारी भी लौटाता है, जैसे स्थानीयकृत समाचार परिणाम और खोज सुझाव। मुझे नहीं लगता कि इनमें इस समय कोई उपयोगकर्ता-पहचान योग्य जानकारी है। सबमिशन के बाद, मैं अतिरिक्त प्रतिक्रियाओं का और अन्वेषण करने की योजना बनाता हूं।
parsecd कितनी बार नया स्थान मांगता है, लेकिन मैंने अपने परीक्षण के दौरान स्टेटस बार में कोई स्थान संकेतक नहीं देखा।Dynamic का उपयोग करता है (यहां पाया गया: https://github.com/mhdhejazi/Dynamic)। इस लाइब्रेरी का उपयोग parsecd का शोषण करने के लिए आवश्यक नहीं है, लेकिन यह बिना एक्सपोज़्ड हेडर के तृतीय-पक्ष API का उपयोग करना आसान बनाता है।parsecd बिना इंटरनेट के स्थान लौटाएगा।