CVE-2025-43300: iOS/macOS DNG इमेज प्रोसेसिंग मेमोरी करप्शन
अवलोकन
CVE-2025-43300, Apple के इमेज प्रोसेसिंग फ्रेमवर्क में एक गंभीर मेमोरी करप्शन भेद्यता है जो iOS 18.6.1 और macOS सिस्टम को प्रभावित करती है। यह भेद्यता RawCamera.bundle के भीतर JPEG लॉसलेस डिकंप्रेशन कोड में मौजूद है, जो DNG फ़ाइलों में TIFF मेटाडेटा और JPEG स्ट्रीम पैरामीटर के बीच असंगतियों के कारण ट्रिगर होती है।
भेद्यता विवरण
मूल कारण
यह भेद्यता DNG (डिजिटल नेगेटिव) फ़ाइलों में मेटाडेटा/स्ट्रीम असंगति के कारण उत्पन्न होती है:
- SamplesPerPixel TIFF हैडर में मेटाडेटा अपेक्षित रंग घटकों को इंगित करता है
- SOF3 घटक संख्या JPEG लॉसलेस स्ट्रीम में वास्तविक डेटा घटकों को निर्दिष्ट करती है
- जब ये मान भिन्न होते हैं, तो आवंटन और प्रोसेसिंग असंरेखित हो जाते हैं
मेमोरी करप्शन प्रवाह
1. Parser reads SamplesPerPixel from TIFF metadata (e.g., 2 components)
2. System allocates buffer: width × height × 2 components
3. JPEG decoder reads SOF3 component count (e.g., 1 component)
4. Decoder writes data based on inconsistent assumptions
5. Buffer overflow occurs when more data is written than allocated
हमला वेक्टर
- Zero-click भेद्यता: किसी उपयोगकर्ता इंटरैक्शन की आवश्यकता नहीं
- स्वचालित प्रोसेसिंग: DNG फ़ाइलों को देखने, आयात करने या प्राप्त करने पर ट्रिगर होती है
- क्रॉस-प्लेटफ़ॉर्म प्रभाव: iOS और macOS दोनों सिस्टम को प्रभावित करती है
- मेमोरी करप्शन: एप्लिकेशन क्रैश या संभावित कोड निष्पादन का कारण बन सकती है
टूल्स अवलोकन
इस रिपॉजिटरी में CVE-2025-43300 का विश्लेषण और प्रतिकृति बनाने के लिए दो Python टूल शामिल हैं:
1. DNG भेद्यता विश्लेषक (dng_vulnerability_analyzer.py)
उद्देश्य: भेद्यता स्थितियों की पहचान करने के लिए DNG फ़ाइल संरचना का विश्लेषण करता है
मुख्य विशेषताएँ:
- TIFF/DNG फ़ाइल संरचना को पार्स करता है जिसमें IFD और SubIFD शामिल हैं
- SamplesPerPixel मेटाडेटा टैग का पता लगाता है
- JPEG लॉसलेस SOF3 मार्कर और घटक संख्याओं की पहचान करता है
- मेटाडेटा/स्ट्रीम असंगतियों का पता लगाता है
- संशोधन के लिए सटीक बाइट ऑफसेट रिपोर्ट करता है
उपयोग:
python3 dng_vulnerability_analyzer.py <dng_file>
आउटपुट:
- फ़ाइल संरचना विश्लेषण
- मेटाडेटा टैग स्थान और मान
- JPEG स्ट्रीम घटक जानकारी
- भेद्यता आकलन
- POC निर्माण के लिए विशिष्ट ऑफसेट
2. सुरक्षित Hex मॉडिफायर (hex_modifier.py)
उद्देश्य: विशिष्ट बाइट्स को सुरक्षित रूप से संशोधित करके प्रूफ-ऑफ-कॉन्सेप्ट फ़ाइलें बनाता है
मुख्य विशेषताएँ:
- संशोधन से पहले अपेक्षित बाइट मानों को सत्यापित करता है
- फ़ाइल ट्रैकिंग के लिए SHA256 हैश बनाता है
- बाइनरी डिफ रिपोर्ट उत्पन्न करता है
- आकस्मिक करप्शन को रोकने के लिए सुरक्षा जाँच लागू करता है
- मैनुअल और स्वचालित दोनों प्रकार के POC निर्माण का समर्थन करता है
उपयोग:
# Create POC using known vulnerable offsets
python3 hex_modifier.py create-poc <input.dng>
# Manual byte modification
python3 hex_modifier.py modify <input.dng> <offset> <old_byte> <new_byte> <output.dng>
# Generate diff report
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 घटकों के बराबर पिक्सेल डेटा के लिए बफर आवंटित करता है
- बफर आकार = image_width × image_height × 2
-
प्रोसेसिंग चरण:
- JPEG लॉसलेस डिकोडर को 1 घटक के साथ SOF3 मिलता है
- पार्सिंग लॉजिक वास्तविक बनाम अपेक्षित डेटा आकार को लेकर भ्रमित हो जाता है
- असंगत मान्यताओं के आधार पर डेटा लिखने का प्रयास करता है
-
मेमोरी करप्शन:
- मूल रूप से आवंटित की तुलना में बफर में अधिक डेटा लिखा जाता है
- बफर ओवरफ्लो आसन्न मेमोरी क्षेत्रों को दूषित कर देता है
- एप्लिकेशन क्रैश या संभावित कोड निष्पादन का परिणाम होता है
फ़ाइल प्रारूप विवरण
DNG फ़ाइलें एम्बेडेड JPEG लॉसलेस स्ट्रीम के साथ TIFF कंटेनर प्रारूप का उपयोग करती हैं:
- TIFF मेटाडेटा इमेज गुणों और रंग जानकारी का वर्णन करता है
- JPEG स्ट्रीम संपीड़ित पिक्सेल डेटा रखती हैं
- विश्वास संबंध मेटाडेटा और स्ट्रीम सामग्री के बीच मौजूद होता है
- सत्यापन अंतराल असंगत मानों को प्रोसेसिंग कोड तक पहुँचने की अनुमति देता है
प्रभाव आकलन
गंभीरता: क्रिटिकल
- CVSS स्कोर: उच्च (zero-click, मेमोरी करप्शन, व्यापक प्रभाव)
- प्रभावित सिस्टम: iOS 18.6.1, समान इमेज प्रोसेसिंग वाले macOS सिस्टम
- हमला वेक्टर: नेटवर्क/स्थानीय फ़ाइल स्थानांतरण
- उपयोगकर्ता इंटरैक्शन: कोई आवश्यकता नहीं
- दायरा: DNG फ़ाइलों को प्रोसेस करने वाले सभी डिवाइस
वास्तविक दुनिया के परिदृश्य
- DNG फ़ाइलों वाले ईमेल अनुलग्नक
- AirDrop स्थानांतरण
- क्लाउड फोटो सिंक्रनाइज़ेशन
- फोटोग्राफर नमूनों के वेब डाउनलोड
- मैसेजिंग ऐप मीडिया साझाकरण
शमन और पैच
विक्रेता प्रतिक्रिया
- iOS 18.6.2 में ठीक किया गया: Apple ने उचित मेटाडेटा सत्यापन लागू किया
- macOS अपडेट: macOS इमेज प्रोसेसिंग में समान सुधार लागू किए गए
- मूल कारण: मेटाडेटा और स्ट्रीम पैरामीटर के बीच संगति जाँच जोड़ी गई
अनुशंसित शमन उपाय
- सिस्टम अपडेट करें: iOS 18.6.2 या बाद का संस्करण इंस्टॉल करें
- इनपुट सत्यापन: कस्टम पार्सर में मेटाडेटा संगति सत्यापित करें
- बाउंड्स जाँच: सख्त बफर आकार सत्यापन लागू करें
- फज़िंग: फ़ाइल प्रारूप पार्सर का नियमित परीक्षण
फ़ाइल संरचना और तकनीकी विवरण
TIFF/DNG संरचना
TIFF Header → IFD Chain → SubIFDs → Image Data
├── Metadata Tags (SamplesPerPixel, Compression, etc.)
├── JPEG Lossless Streams (SOF3 markers)
└── Pixel Data (compressed)
प्रमुख भेद्यता स्थान
- SamplesPerPixel टैग: IFD संरचनाओं में TIFF टैग 0x0115
- SOF3 मार्कर: JPEG लॉसलेस स्टार्ट ऑफ फ्रेम (0xFFC3)
- घटक संख्या: SOF3 मार्कर से बाइट ऑफसेट +9
- क्रिटिकल असंगति: जब टैग मान ≠ घटक संख्या
परीक्षण दिशानिर्देश
सुरक्षित परीक्षण वातावरण
- पृथक सिस्टम का उपयोग करें: VM या समर्पित परीक्षण डिवाइस
- स्नैपशॉट बनाएं: POC फ़ाइलों का परीक्षण करने से पहले
- क्रैश की निगरानी करें: सिस्टम लॉग और क्रैश रिपोर्ट जाँचें
- नेटवर्क अलगाव: अनपेक्षित फ़ाइल साझाकरण रोकें
अपेक्षित व्यवहार
- भेद्य सिस्टम: एप्लिकेशन क्रैश, मेमोरी करप्शन त्रुटियाँ
- पैच किए गए सिस्टम: सुरुचिपूर्ण त्रुटि हैंडलिंग या सही प्रोसेसिंग
- लॉग संकेतक: मेमोरी एक्सेस उल्लंघन, सेगमेंटेशन फॉल्ट
तकनीकी संदर्भ
फ़ाइल प्रारूप दस्तावेज़ीकरण
- TIFF 6.0 विनिर्देश: टैग संरचना और IFD प्रारूप
- DNG विनिर्देश: Adobe डिजिटल नेगेटिव प्रारूप
- JPEG मानक: लॉसलेस कम्प्रेशन (ITU-T T.87)
सुरक्षा अनुसंधान
- मेमोरी करप्शन तकनीकें: बफर ओवरफ्लो मूलभूत सिद्धांत
- फ़ाइल प्रारूप फज़िंग: स्वचालित भेद्यता खोज
- पार्सर सुरक्षा: इनपुट सत्यापन सर्वोत्तम अभ्यास
अस्वीकरण: यह शोध केवल शैक्षिक और रक्षात्मक सुरक्षा उद्देश्यों के लिए प्रदान किया गया है। उपयोगकर्ता लागू कानूनों और नैतिक दिशानिर्देशों के अनुपालन के लिए जिम्मेदार हैं।
नोट
क्रैश ट्रिगर होने में लगभग 1-3 मिनट लगते हैं। मज़े करें
और POC के लिए आप फ़ाइल चलाने के लिए open vuln_file.dng कमांड चला सकते हैं या बस इसे प्रीव्यू करें और यह निष्पादित हो जाएगा