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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-52885 | Kitploit
उपकरण/GitHubGitHub/v3s9er/cve-2026-52885
भेद्यता विश्लेषणकोड विश्लेषणशोषणबाइनरी विश्लेषणपेपर और शोधलर्निंग और शिक्षा
GitHubv3s9er/cve-2026-52885

CVE-2026-52885

रिपॉजिटरी देखें
7 दिन पहलेअभी तक समीक्षित नहीं

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

सभी देखें →

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

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

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

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

TOCTOU: HMAC डिस्क की जाँच करता है, मेमोरी से निष्पादन करता है

Notepad++ v8.9.6.2 — HMAC रेस कंडीशन के माध्यम से हमलावर-नियंत्रित UserCommand निष्पादन

एडवाइजरी

GHSAGHSA-qm4c-qg8p-qfcr
CVECVE-2026-52885
गंभीरताउच्च
प्रभावितv8.9.6.2
पैच किया गयाv8.9.6.4
पैच कमिट4f7563c
प्रभावित फ़ाइलPowerEditor/src/NppCommands.cpp :4328–4359
प्लेटफ़ॉर्मWindows 11 Pro x64
आवश्यक विशेषाधिकारसामान्य उपयोगकर्ता (shortcuts.xml तक लेखन पहुंच)
शोधकर्ताv3s9er
खुलासा2026-06-05

सारांश

Notepad++ v8.9.6.2 ने shortcuts.xml पर HMAC-SHA256 अखंडता जाँच शुरू की ताकि मनमानी UserCommand प्रविष्टियों के इंजेक्शन को रोका जा सके।

जाँच में TOCTOU दोष है: HMAC को ट्रिगर समय पर डिस्क पर मौजूद फ़ाइल के विरुद्ध सत्यापित किया जाता है, लेकिन जो कमांड निष्पादित होती है वह स्टार्टअप पर लोड किए गए इन-मेमोरी _userCommands वेक्टर से पढ़ी जाती है। ये दोनों स्रोत कभी पुनः-सिंक्रनाइज़ नहीं होते।

जो हमलावर shortcuts.xml में लिख सकता है, वह लॉन्च से पहले एक दुर्भावनापूर्ण कमांड रख सकता है, Notepad++ को उसे मेमोरी में लोड करने देता है, डिस्क पर वैध फ़ाइल को पुनर्स्थापित करता है, फिर कमांड ट्रिगर करता है। HMAC जाँच पास हो जाती है (डिस्क साफ है), लेकिन दुर्भावनापूर्ण पेलोड निष्पादित हो जाता है (मेमोरी पुरानी है)।


तकनीकी अवलोकन

अखंडता तंत्र वर्तमान ऑन-डिस्क shortcuts.xml को मान्य करता है, जबकि कमांड निष्पादन पहले लोड किए गए इन-मेमोरी प्रतिनिधित्व का उपयोग करता है। क्योंकि दोनों डेटा स्रोत स्वतंत्र हैं, एक हमलावर स्टार्टअप से पहले फ़ाइल को बदल सकता है, उसे मेमोरी में पार्स होने देता है, फिर कमांड निष्पादन से पहले मूल फ़ाइल को पुनर्स्थापित कर देता है — जिससे HMAC जाँच पास हो जाती है जबकि दुर्भावनापूर्ण पेलोड चलता है।


मूल कारण

NppCommands.cpp पंक्तियाँ 4328–4359:

root@kitploit:~
// TIME OF CHECK — reads on-disk file
std::string currentHMAC = computeHMAC(
    getMachineGUID(),
    getFileContent(nppParams.getShortcutsPath().c_str())
);
if (currentHMAC != nppGUI._shortcutsXmlHmacInConfig) { return; }
// validated against DISK

// TIME OF USE — reads in-memory vector (loaded at startup, never refreshed)
int i = id - ID_USER_CMD;
const vector<UserCommand>& cmds = nppParams.getUserCommandList();
UserCommand ucmd = cmds[i];
Command cmd(string2wstring(ucmd.getCmd(), CP_UTF8));
cmd.run(_pPublicInterface->getHSelf()); // executes payload from MEMORY
ऑपरेशनस्रोतसमय
जाँच (HMAC)डिस्क फ़ाइलट्रिगर समय पर
उपयोग (exec)मेमोरी वेक्टरस्टार्टअप पर लोड हुआ
अंतरालहमलावर-नियंत्रितस्टार्टअप → ट्रिगर

हमले का परिदृश्य

पूर्व-शर्त: shortcuts.xml तक लेखन पहुंच

  • पोर्टेबल इंस्टॉल: notepad++.exe के समान निर्देशिका
  • मानक इंस्टॉल: %AppData%\Notepad++\

चरण:

  1. डिस्क पर shortcuts.xml को दुर्भावनापूर्ण संस्करण से अधिलेखित करें (cmd = calc.exe)
  2. Notepad++ लॉन्च करें — _userCommands दुर्भावनापूर्ण फ़ाइल से भर जाता है
  3. वैध shortcuts.xml को डिस्क पर पुनर्स्थापित करें — HMAC अब config.xml से मेल खाता है
  4. WM_COMMAND(21000) (ID_USER_CMD+0) भेजें या Ctrl+Alt+P दबाएँ
  5. HMAC जाँच डिस्क से वैध फ़ाइल पढ़ती है → पास होती है
  6. निष्पादन मेमोरी से _userCommands[0] पढ़ता है → calc.exe चलता है

परिणाम: वर्तमान उपयोगकर्ता के विशेषाधिकारों के अंतर्गत हमलावर-नियंत्रित कमांड का निष्पादन। कोई एडमिन नहीं, कोई UAC नहीं, कोई उपयोगकर्ता चेतावनी नहीं।


निष्पादन समयरेखा


प्रभाव


प्रमाण-अवधारणा

देखें poc_8962_toctou.ps1।

आवश्यकताएँ:

  • Notepad++ v8.9.6.2 पोर्टेबल x64
  • Notepad++ निर्देशिका में doLocalConf.xml मौजूद हो (पोर्टेबल मोड)
  • config.xml में वैध shortcuts.xml के लिए मान्य HMAC हो
root@kitploit:~
.\poc_8962_toctou.ps1 -NppPath "C:\path\to\notepad++.exe"

सत्यापित: calc.exe स्पॉन हुआ (PID 35932), पूरे समय डिस्क वैध shortcuts.xml दिखाती है।


पैच विश्लेषण

फिक्स (कमिट 4f7563c) HMAC सत्यापन को स्टार्टअप पर, प्रारंभिक फ़ाइल पार्स के साथ स्थानांतरित कर देता है। Check और Use अब एक ही समय में एक ही ऑब्जेक्ट पर कार्य करते हैं, जिससे TOCTOU विंडो समाप्त हो जाती है।

v8.9.6.2 (असुरक्षित)v8.9.6.4 (पैच किया गया)
HMAC जाँचट्रिगर समय पर, डिस्क को फिर से पढ़ती हैस्टार्टअप पर, पार्स के समान बाइट्स
कमांड स्रोतस्टार्टअप पर लोड की गई मेमोरीस्टार्टअप पर मान्य की गई मेमोरी
TOCTOU विंडोस्टार्टअप → ट्रिगर

संदर्भ

  • GHSA-qm4c-qg8p-qfcr
  • पैच कमिट 4f7563c
  • Notepad++ v8.9.6.4 रिलीज़
टूल डाउनलोड करें
समयघटनास्थिति
T+0.0sहमलावर दुर्भावनापूर्ण shortcuts.xml लिखता हैdisk=MALICIOUS
T+0.0sहमलावर Notepad++ लॉन्च करता हैdisk=MALICIOUS
T+0.1sNotepad++ shortcuts.xml पढ़ता है → _userCommands[0]="calc.exe"mem=MALICIOUS
T+4.2sNotepad++ पूरी तरह लोड हो गयाmem=MALICIOUS
T+4.2sहमलावर वैध shortcuts.xml पुनर्स्थापित करता हैdisk=LEGIT / mem=MAL
T+4.7sहमलावर WM_COMMAND(21000) भेजता है
T+4.7sHMAC जाँच: डिस्क से वैध फ़ाइल पढ़ती है → पासCHECK OK
T+4.7sनिष्पादन: मेमोरी से _userCommands[0] पढ़ता है → calc.exeEXPLOIT
T+4.7scalc.exe स्पॉन हुआ (PID 35932)CONFIRMED
प्रकारमनमाना कमांड निष्पादन
एडमिन आवश्यकनहीं
UAC संकेतनहीं
पता लगाने की क्षमताकम — डिस्क पूरे समय वैध फ़ाइल दिखाती है; पेलोड केवल मेमोरी में है
CVSS (अनुमानित)AV:L / AC:H / PR:L / UI:N / S:U / C:H / I:H / A:H
समाप्त