
Live2D के लिए MOC3ingbird एक्सप्लॉइट (CVE-2023-27566)
इस क्षेत्र में भविष्य का कार्य Sakura Motion संगठन के अंतर्गत होगा, जिसकी शुरुआत हमारे Core पुनर्लेखन: https://github.com/SakuraMotion/PurismCore से होगी।
जापानी संस्करण: README_JA.md
इस रिपॉज़िटरी में एक साधारण Live2D मॉडल है जो इसे लोड करने का प्रयास करने वाले किसी भी एप्लिकेशन को क्रैश कर देता है: एक सेवा अस्वीकार (denial of service) हमला। यदि आपके पास ImHex हेक्स संपादक स्थापित है, तो आप src/moc3.hexpat में पैटर्न फ़ाइल के साथ MOC3 फ़ाइल का निरीक्षण और संपादन कर सकते हैं। कृपया ध्यान दें कि पैटर्न डेटा देखने के लिए आपको फ़ाइल की शुरुआत के पास स्थित 0x7FFFFFFF (FF FF FF 7F) रनटाइम स्पेस ऑफ़सेट मान को कुछ उचित मान (0) में बदलना होगा। वैकल्पिक रूप से, आप Settings टैब से ShowRuntimeSpaceFields सक्षम कर सकते हैं।
src/moc3.hexpat सभी MOC3 फ़ाइलों को देखने में सक्षम होना चाहिए। यदि आपको कोई ऐसी फ़ाइल मिलती है जिसे यह नहीं देख सकता, तो कृपया एक issue दर्ज करें और हम इस पर गौर करेंगे।
शामिल फ़ाइलों का उपयोग आगे के शोध और प्रयोग के लिए एक टेम्पलेट के रूप में भी किया जा सकता है।
ये फ़ाइलें इस आशा के साथ जारी की गई हैं कि वे Live2D को अपनी सुरक्षा प्रथाओं में सुधार करने के लिए प्रेरित करेंगी।
केवल एक व्यापक रूप से उपयोग होने वाला MOC3 रीडर कार्यान्वयन है: Live2D Cubism Core। Cubism Core एक C लाइब्रेरी है जो MOC3 फ़ाइलों में निहित ऑफ़सेट पर बाउंड जाँच करने का कोई प्रयास नहीं करती है। परिणामस्वरूप, मेमोरी में MOC3 डेटा की सीमा से बाहर मेमोरी को पढ़ना और लिखना बहुत आसान है, और इस तरह से मनमाना कोड निष्पादित करना लगभग निश्चित रूप से संभव है।
अभी तक, मुझे केवल Cubism Core का उपयोग करके कोड निष्पादन प्राप्त करने का कोई तरीका नहीं मिला है; हालाँकि, होस्ट प्रोग्राम (जैसे Cubism Viewer, VTube Studio, आदि) के मेमोरी लेआउट का लाभ उठाकर कोड निष्पादन अभी भी संभव हो सकता है।
MOC3ingbird मॉडल (इस रिपॉज़िटरी) के लिए सीधा ZIP डाउनलोड: यहाँ क्लिक करें।
यदि आपके पास Live2D का Cubism Editor (और Viewer) या कोई अन्य सॉफ़्टवेयर है जो Live2D मॉडल लोड कर सकता है, तो बस exploit.moc3 फ़ाइल को उसके साथ खोलें।
Live2D Cubism Editor के साथ बंडल किए गए व्यूअर के लिए, आप इस रिपॉज़िटरी को डाउनलोड कर सकते हैं और exploit.moc3 को व्यूअर में खींच सकते हैं। यह मॉडल को लोड करना शुरू कर देगा और तुरंत क्रैश हो जाएगा।
यदि आप क्रैश हो रहे एप्लिकेशन में एक डिबगर संलग्न करते हैं, तो आपको EXCEPTION_ACCESS_VIOLATION अपवाद, SIGSEGV, या कोई अन्य समकक्ष दिखना चाहिए। वर्तमान PoC moc3BaseAddress + sections.parts.runtimeSpace0 में moc3BaseAddress + sections.parts.ids मान के साथ एक पॉइंटर लिखता है।
src/moc3.hexpat पैटर्न सभी MOC3 फ़ाइलों का समर्थन करता है। कुछ नमूने https://live2d.com/en/download/sample-data/ पर पाए जा सकते हैं। कृपया ध्यान दें कि वे नमूने Live2D Inc. द्वारा कॉपीराइट किए गए हैं और उन पर अतिरिक्त प्रतिबंध हो सकते हैं। OpenL2D प्रोजेक्ट डेवलपर्स इस सॉफ़्टवेयर के उपयोगकर्ताओं द्वारा किसी भी तृतीय-पक्ष समझौतों के अनुपालन को सुनिश्चित करने के लिए ज़िम्मेदार नहीं हैं।
कॉपीराइट © 2023 The OpenL2D Project Developers। सर्वाधिकार सुरक्षित।
यह मॉडल और इससे संबंधित सभी फ़ाइलें मुफ़्त सॉफ़्टवेयर हैं, जो https://freedevproject.org/fdpl-1.0-us पर Freedom of Development Project द्वारा प्रकाशित Free Development Public License 1.0-US की शर्तों के तहत लाइसेंस प्राप्त हैं। इस रिपॉज़िटरी में फ़ाइलों का उपयोग इस लाइसेंस की स्वीकृति माना जाता है।
इस रिपॉज़िटरी में कोई भी फ़ाइल किसी Live2D सॉफ़्टवेयर के आउटपुट से व्युत्पन्न नहीं हुई है। सभी अधिकार केवल OpenL2D प्रोजेक्ट डेवलपर्स के लिए सुरक्षित हैं, जिनका इन फ़ाइलों के वितरण के संबंध में किसी भी समझौते के तहत किसी भी पक्ष के प्रति कोई दायित्व नहीं है।
अधिक स्पष्ट रूप से कहें तो: आप अपने स्वयं के MOC3 रीडर और राइटर बनाने के लिए शामिल मॉडल फ़ाइलों और पैटर्न फ़ाइलों का उपयोग करने के लिए स्वतंत्र हैं। कोई भी लाइसेंस आपके इस अधिकार को प्रतिबंधित नहीं करेगा।