
इमेजमैजिक (ImageMagick) आर्बिट्ररी फ़ाइल रीड भेद्यता (CVE-2022-44268) के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, जो क्राफ्टेड PNG टेक्स्चुअल चंक्स के माध्यम से इमेज रिसाइज़ ऑपरेशन के दौरान सिस्टम फ़ाइलों के निष्कर्षण को सक्षम बनाता है।
इस रिपॉजिटरी में ImageMagick (v. 7.1.0-49) में एक भेद्यता के लिए एक प्रूफ ऑफ कॉन्सेप्ट (POC) शामिल है, जो एक व्यापक रूप से उपयोग की जाने वाली ओपन-सोर्स इमेज मैनिपुलेशन लाइब्रेरी है। यह भेद्यता एक हमलावर को ImageMagick द्वारा PNG फ़ाइल को पार्स करने पर एक मनमानी फ़ाइल की सामग्री को रिसाइज़ की गई छवि में एम्बेड करने की अनुमति देती है।
जब ImageMagick PNG फ़ाइल पर रिसाइज़ जैसे संचालन करता है, तो यह एक सिस्टम फ़ाइल की सामग्री को शामिल कर सकता है, बशर्ते कि magick बाइनरी के पास इसे पढ़ने के लिए आवश्यक अनुमतियाँ हों। यह भेद्यता PNG फ़ाइलों के भीतर टेक्स्टुअल चंक्स के गलत प्रबंधन के कारण उत्पन्न होती है।
एक दुर्भावनापूर्ण अभिकर्ता इस भेद्यता का शोषण PNG फ़ाइल बनाकर या मौजूदा फ़ाइल का उपयोग करके और एक टेक्स्टुअल चंक प्रकार (tEXt) जोड़कर कर सकता है। इन चंक्स में एक कीवर्ड और एक टेक्स्ट स्ट्रिंग होती है। इस मामले में, यदि कीवर्ड "profile" (बिना उद्धरण) स्ट्रिंग से मेल खाता है, तो ImageMagick साथ वाली टेक्स्ट स्ट्रिंग को एक फ़ाइलनाम के रूप में व्याख्या करेगा और इसकी सामग्री को रॉ प्रोफाइल के रूप में लोड करने का प्रयास करेगा। परिणामस्वरूप, जब रिसाइज़ की गई छवि डाउनलोड की जाती है, तो इसमें हमलावर द्वारा निर्दिष्ट रिमोट फ़ाइल की सामग्री शामिल होगी।
अधिक जानकारी के लिए, MetabaseQ का यह लेख देखें।
ImageMagick का शोषण करने के लिए, एक दुर्भावनापूर्ण png जनरेट करें:
python3 CVE-2022-44268.py /etc/passwd # Create output.png
फिर, convert के साथ रिसाइज़ ऑपरेशन चलाएँ:
convert output.png -resize 50% leak.png
अंत में, लीक इमेज का निरीक्षण करें और Raw profile को हेक्स में बदलें:
identify -verbose leak.png
# ...
Raw profile type:
2367
726f6f743a783a303a303a726f6f743a2f726f6f743a2f6269 [...]
python -c "print(bytes.fromhex('726f6f743a783a303a303a726f6f743a2f726f6f743a2f6269 [...]'))"
नोट: यह POC केवल शैक्षिक और सूचनात्मक उद्देश्यों के लिए है। कृपया सुनिश्चित करें कि किसी भी सिस्टम पर इस POC का परीक्षण या उपयोग करने से पहले आपके पास आवश्यक अनुमतियाँ और कानूनी प्राधिकरण हैं।