CVE-2025-43300: iOS/macOS DNG इमेज प्रोसेसिंग मेमोरी करप्शन
अवलोकन
CVE-2025-43300 Apple के इमेज प्रोसेसिंग फ्रेमवर्क में एक गंभीर मेमोरी करप्शन भेद्यता है जो iOS 18.6.1 और macOS सिस्टम को प्रभावित करती है। यह भेद्यता RawCamera.bundle के भीतर JPEG लॉसलेस डीकंप्रेशन कोड में मौजूद है, जो DNG फाइलों में TIFF मेटाडेटा और JPEG स्ट्रीम पैरामीटर्स के बीच असंगतियों के कारण ट्रिगर होती है।
भेद्यता विवरण
मूल कारण
यह भेद्यता DNG (डिजिटल नेगेटिव) फाइलों में मेटाडेटा/स्ट्रीम असंगति से उत्पन्न होती है:
- SamplesPerPixel मेटाडेटा TIFF हेडर में अपेक्षित रंग घटकों को इंगित करता है
- JPEG लॉसलेस स्ट्रीम में SOF3 कंपोनेंट काउंट वास्तविक डेटा घटकों को निर्दिष्ट करता है
- जब ये मान भिन्न होते हैं, तो आवंटन और प्रसंस्करण गलत संरेखित हो जाते हैं
मेमोरी करप्शन प्रवाह
1. पार्सर TIFF मेटाडेटा से SamplesPerPixel पढ़ता है (जैसे, 2 घटक)
2. सिस्टम बफर आवंटित करता है: चौड़ाई × ऊँचाई × 2 घटक
3. JPEG डिकोडर SOF3 कंपोनेंट काउंट पढ़ता है (जैसे, 1 घटक)
4. डिकोडर असंगत मान्यताओं के आधार पर डेटा लिखता है
5. बफर ओवरफ्लो तब होता है जब आवंटित से अधिक डेटा लिखा जाता है
हमला वेक्टर
- ज़ीरो-क्लिक भेद्यता: कोई उपयोगकर्ता इंटरैक्शन आवश्यक नहीं
- स्वचालित प्रसंस्करण: DNG फाइलों को देखने, आयात करने या प्राप्त करने पर ट्रिगर
- क्रॉस-प्लेटफ़ॉर्म प्रभाव: iOS और macOS दोनों सिस्टम को प्रभावित करता है
- मेमोरी करप्शन: एप्लिकेशन क्रैश या संभावित कोड निष्पादन का कारण बन सकता है
उपकरण अवलोकन
इस रिपॉजिटरी में CVE-2025-43300 के विश्लेषण और पुनरुत्पादन के लिए दो Python उपकरण हैं:
1. DNG भेद्यता विश्लेषक (dng_vulnerability_analyzer.py)
उद्देश्य: भेद्यता स्थितियों की पहचान करने के लिए DNG फ़ाइल संरचना का विश्लेषण करना
मुख्य विशेषताएँ:
- IFD और SubIFDs सहित TIFF/DNG फ़ाइल संरचना को पार्स करता है
- SamplesPerPixel मेटाडेटा टैग का पता लगाता है
- JPEG लॉसलेस SOF3 मार्कर और कंपोनेंट काउंट की पहचान करता है
- मेटाडेटा/स्ट्रीम असंगतियों का पता लगाता है
- संशोधन के लिए सटीक बाइट ऑफ़सेट रिपोर्ट करता है
उपयोग:
python3 dng_vulnerability_analyzer.py <dng_file>
आउटपुट:
- फ़ाइल संरचना विश्लेषण
- मेटाडेटा टैग स्थान और मान
- JPEG स्ट्रीम कंपोनेंट जानकारी
- भेद्यता मूल्यांकन
- POC निर्माण के लिए विशिष्ट ऑफ़सेट
2. सुरक्षित हेक्स संशोधक (hex_modifier.py)
उद्देश्य: विशिष्ट बाइट्स को सुरक्षित रूप से संशोधित करके प्रूफ-ऑफ-कॉन्सेप्ट फ़ाइलें बनाना
मुख्य विशेषताएँ:
- संशोधन से पहले अपेक्षित बाइट मानों को सत्यापित करता है
- फ़ाइल ट्रैकिंग के लिए SHA256 हैश बनाता है
- बाइनरी डिफ़ रिपोर्ट उत्पन्न करता है
- आकस्मिक भ्रष्टाचार को रोकने के लिए सुरक्षा जाँच लागू करता है
- मैन्युअल और स्वचालित POC निर्माण दोनों का समर्थन करता है
उपयोग:
# ज्ञात कमजोर ऑफ़सेट का उपयोग करके POC बनाएँ
python3 hex_modifier.py create-poc <input.dng>
# मैन्युअल बाइट संशोधन
python3 hex_modifier.py modify <input.dng> <offset> <old_byte> <new_byte> <output.dng>
# डिफ़ रिपोर्ट उत्पन्न करें
python3 hex_modifier.py diff <original.dng> <modified.dng>
POC निर्माण प्रक्रिया
चरण 1: लक्ष्य फ़ाइल का विश्लेषण करें
python3 dng_vulnerability_analyzer.py IMGP0847.DNG
यह पहचानता है:
- SamplesPerPixel मेटाडेटा का स्थान
- JPEG SOF3 कंपोनेंट काउंट के स्थान
- वर्तमान मान और सुझाए गए संशोधन
चरण 2: कमजोर नमूना बनाएँ
POC के लिए दो विशिष्ट बाइट संशोधनों की आवश्यकता होती है:
- SamplesPerPixel मेटाडेटा बढ़ाएँ (आमतौर पर 1 से 2)
- SOF3 कंपोनेंट काउंट घटाएँ (आमतौर पर 2 से 1)
python3 hex_modifier.py create-poc IMGP0847.DNG
चरण 3: POC सत्यापित करें
python3 dng_vulnerability_analyzer.py vuln_poc_IMGP0847.dng
असंगति के अस्तित्व और भेद्यता के ट्रिगर होने की पुष्टि करता है।
POC क्यों काम करता है
तकनीकी तंत्र
-
आवंटन चरण:
- इमेज पार्सर SamplesPerPixel = 2 पढ़ता है
- पिक्सेल डेटा के 2 घटकों के लिए बफर आवंटित करता है
- बफर आकार = इमेज_चौड़ाई × इमेज_ऊँचाई × 2
-
प्रसंस्करण चरण:
- JPEG लॉसलेस डिकोडर 1 घटक के साथ SOF3 का सामना करता है
- पार्सिंग तर्क वास्तविक बनाम अपेक्षित डेटा आकार के बारे में भ्रमित हो जाता है
- असंगत मान्यताओं के आधार पर डेटा लिखने का प्रयास करता है
-
मेमोरी करप्शन:
- मूल रूप से आवंटित से अधिक डेटा बफर में लिखा जाता है
- बफर ओवरफ्लो आसन्न मेमोरी क्षेत्रों को दूषित करता है
- परिणामस्वरूप एप्लिकेशन क्रैश या संभावित कोड निष्पादन होता है
फ़ाइल प्रारूप विशिष्टताएँ
DNG फ़ाइलें एम्बेडेड JPEG लॉसलेस स्ट्रीम के साथ TIFF कंटेनर प्रारूप का उपयोग करती हैं:
- TIFF मेटाडेटा इमेज गुणों और रंग जानकारी का वर्णन करता है
- JPEG स्ट्रीम में संपीड़ित पिक्सेल डेटा होता है
- विश्वास संबंध मेटाडेटा और स्ट्रीम सामग्री के बीच मौजूद होता है
- सत्यापन अंतर असंगत मानों को प्रसंस्करण कोड तक पहुँचने देता है
प्रभाव मूल्यांकन
गंभीरता: क्रिटिकल
- CVSS स्कोर: उच्च (ज़ीरो-क्लिक, मेमोरी करप्शन, व्यापक प्रभाव)
- प्रभावित सिस्टम: iOS 18.6.1, समान इमेज प्रोसेसिंग वाले macOS सिस्टम
- हमला वेक्टर: नेटवर्क/स्थानीय फ़ाइल स्थानांतरण
- उपयोगकर्ता इंटरैक्शन: कोई आवश्यक नहीं
- दायरा: DNG फ़ाइलों को प्रोसेस करने वाले सभी उपकरण
वास्तविक दुनिया के परिदृश्य
- DNG फ़ाइलों वाले ईमेल अटैचमेंट
- AirDrop स्थानांतरण
- क्लाउड फोटो सिंक्रोनाइज़ेशन
- फ़ोटोग्राफ़र नमूनों के वेब डाउनलोड
- मैसेजिंग ऐप मीडिया शेयरिंग
शमन और पैच
विक्रेता प्रतिक्रिया
- iOS 18.6.2 में ठीक किया गया: Apple ने उचित मेटाडेटा सत्यापन लागू किया
- macOS अपडेट: macOS इमेज प्रोसेसिंग में समान सुधार लागू किए गए
- मूल कारण: मेटाडेटा और स्ट्रीम पैरामीटर्स के बीच स्थिरता जाँच जोड़ी गई
अनुशंसित शमन
- सिस्टम अपडेट करें: iOS 18.6.2 या बाद का संस्करण स्थापित करें
- इनपुट सत्यापन: कस्टम पार्सर्स में मेटाडेटा स्थिरता सत्यापित करें
- सीमा जाँच: सख्त बफर आकार सत्यापन लागू करें
- फ़ज़िंग: फ़ाइल प्रारूप पार्सर्स का नियमित परीक्षण
फ़ाइल संरचना और तकनीकी विवरण
TIFF/DNG संरचना
TIFF हेडर → IFD श्रृंखला → SubIFDs → इमेज डेटा
├── मेटाडेटा टैग (SamplesPerPixel, Compression, आदि)
├── JPEG लॉसलेस स्ट्रीम (SOF3 मार्कर)
└── पिक्सेल डेटा (संपीड़ित)
मुख्य भेद्यता स्थान
- SamplesPerPixel टैग: IFD संरचनाओं में TIFF टैग 0x0115
- SOF3 मार्कर: JPEG लॉसलेस फ्रेम प्रारंभ (0xFFC3)
- कंपोनेंट काउंट: SOF3 मार्कर से बाइट ऑफसेट +9
- महत्वपूर्ण बेमेल: जब टैग मान ≠ कंपोनेंट काउंट
परीक्षण दिशानिर्देश
सुरक्षित परीक्षण वातावरण
- पृथक सिस्टम का उपयोग करें: VMs या समर्पित परीक्षण उपकरण
- स्नैपशॉट बनाएँ: POC फ़ाइलों का परीक्षण करने से पहले
- क्रैश की निगरानी करें: सिस्टम लॉग और क्रैश रिपोर्ट जाँचें
- नेटवर्क पृथक्करण: अनपेक्षित फ़ाइल साझाकरण को रोकें
अपेक्षित व्यवहार
- कमजोर सिस्टम: एप्लिकेशन क्रैश, मेमोरी करप्शन त्रुटियाँ
- पैच किए गए सिस्टम: सुचारू त्रुटि प्रबंधन या सही प्रसंस्करण
- लॉग संकेतक: मेमोरी एक्सेस उल्लंघन, सेगमेंटेशन फॉल्ट
तकनीकी संदर्भ
फ़ाइल प्रारूप दस्तावेज़ीकरण
- TIFF 6.0 विनिर्देश: टैग संरचना और IFD प्रारूप
- DNG विनिर्देश: Adobe डिजिटल नेगेटिव प्रारूप
- JPEG मानक: लॉसलेस संपीड़न (ITU-T T.87)
सुरक्षा अनुसंधान
- मेमोरी करप्शन तकनीकें: बफर ओवरफ्लो के मूल सिद्धांत
- फ़ाइल प्रारूप फ़ज़िंग: स्वचालित भेद्यता खोज
- पार्सर सुरक्षा: इनपुट सत्यापन के सर्वोत्तम अभ्यास
अस्वीकरण: यह शोध केवल शैक्षिक और रक्षात्मक सुरक्षा उद्देश्यों के लिए प्रदान किया गया है। उपयोगकर्ता लागू कानूनों और नैतिक दिशानिर्देशों के अनुपालन के लिए स्वयं जिम्मेदार हैं।
नोट
क्रैश को ट्रिगर होने में लगभग 1-3 मिनट लगते हैं। मज़े करें।
और POC के लिए आप फ़ाइल को चलाने के लिए open vuln_file.dng चला सकते हैं या बस इसे पूर्वावलोकन कर सकते हैं और यह निष्पादित हो जाएगी।