
CVE-2022-24086 पर सत्यापित प्रूफ ऑफ कॉन्सेप्ट
CVE-2022-24086, जिसे Adobe ने “बहुत सीमित हमलों में वास्तविक दुनिया में शोषित” (exploited in the wild) के रूप में देखा, को 10 में से 9.8 की गंभीरता रेटिंग मिली, और इसे शोषित करने वाले विरोधी प्रभावित सिस्टम पर बिना प्रमाणीकरण के रिमोट कोड निष्पादन प्राप्त कर सकते हैं। यह समस्या अब CVE-2022-24087 के रूप में ट्रैक की जा रही है, जिसकी गंभीरता रेटिंग समान है और हमलों में उपयोग किए जाने पर समान परिणाम दे सकती है। दोनों अनुचित इनपुट सत्यापन (Improper Input Validation) कमजोरियाँ हैं, और कंपनी ने इन दो सुरक्षा मुद्दों को हल करने के लिए Adobe Commerce और Magento Open Source के लिए पैच जारी किए।
हम केवल 2022-24086 पर ध्यान केंद्रित करेंगे, क्योंकि यदि CMS पैच किया गया है, तो आमतौर पर उसमें दोनों पैच पहले से मौजूद होते हैं, इसलिए 2022-24087 में खोज करने का कोई मतलब नहीं है।
Magento Open Source / Adobe Commerce - 2.3.3-p1 - 2.3.7-p2
Magento Open Source / Adobe Commerce - 2.4.0 - 2.4.3-p1
यह PoC डिफ़ॉल्ट ईमेल टेम्पलेट मॉड्यूल और डिफ़ॉल्ट नमूना डेटा के साथ 2.3.4, 2.4.0, 2.4.2-p2, 2.4.3 और 2.4.3-p1 संस्करणों पर जाँचा गया।
आधिकारिक पैच, MDVA-43443, MDVA-43395 में गहराई से देखते हैं। सभी संस्करणों के लिए सभी composer पैच सामान्य भाग साझा करते हैं, सबसे महत्वपूर्ण हैं:
+ private function sanitizeValue($value)
+ {
+ return is_bool($value) ? $value : str_replace(['{', '}'], '', (string) $value);
+ }
+ $pattern = '/{{.*?}}/';
+ do {
+ $result = preg_replace($pattern, '', (string)$result);
+ } while (preg_match($pattern, $result));
जैसा कि हम देखते हैं, वे {{ और }} से छुटकारा पाने की कोशिश करते हैं। वे घुंघराले दोहरे कोष्ठक अंतर्निहित ईमेल टेम्पलेट्स में उपयोग किए जाते हैं।
अब समय है ईमेल टेम्पलेट्स में गहराई से जाने का!
ईमेल टेम्पलेट्स पर आधिकारिक मैनुअल 15 मार्च को संपादित किया गया था, क्या बदला और क्यों? web.archive.org हमें उस पेज का एक पुराना संस्करण दिखाएगा और हम देख सकते हैं कि उन्होंने सिस्टम वेरिएबल्स के बारे में उल्लेख हटा दिए। getTemplateFilter और addAfterFilterCallback विधियों के बारे में जानकारी मैनुअल से मिटा दी गई।
public function getTemplateFilter()
{
if (empty($this->templateFilter)) {
$this->templateFilter = $this->getFilterFactory()->create();
$this->templateFilter->setUseAbsoluteLinks($this->getUseAbsoluteLinks())
->setStoreId($this->getDesignConfig()->getStore())
->setUrlModel($this->urlModel);
}
return $this->templateFilter;
}
public function addAfterFilterCallback(callable $afterFilterCallback)
{
// Only add callback if it doesn't already exist
if (in_array($afterFilterCallback, $this->afterFilterCallbacks)) {
return $this;
}
$this->afterFilterCallbacks[] = $afterFilterCallback;
return $this;
}

अधिकांश प्रमुख Magento उपयोगकर्ता पहले ही पैच कर चुके हैं और यह उपकरण अब उतना खतरनाक नहीं है जितना कुछ महीने पहले था। लेकिन इस उपकरण द्वारा किए जा सकने वाले संभावित नुकसान के कारण यह PoC सीमित पहुंच में नहीं होना चाहिए।
वर्तमान मूल्य - 0.5 BTC। इसमें पेनेट्रेशन पर पूर्ण निर्देश, नमूना पेलोड और समर्थन शामिल है।
परामर्श और ऑर्डर के लिए हमारा XMPP संपर्क [email protected] है।
यह PoC स्पष्ट रूप से किसी भी नुकसान को पहुंचाने की स्थिति में नहीं है। यह कुछ बड़ा बनाने के लिए एक ठोस शुरुआती बिंदु है।
इस परियोजना के लेखक सामग्री द्वारा किसी भी संभावित नुकसान के लिए जिम्मेदार नहीं हैं।
CC0