node-tar हार्डलिंक पाथ ट्रैवर्सल के माध्यम से मनमाना फ़ाइल निर्माण/ओवरराइट के लिए असुरक्षित
प्लेटफ़ॉर्म
nodejs
कॉम्पोनेन्ट
tar
ठीक किया गया
7.5.7
### सारांश node-tar में एक भेद्यता है जहाँ हार्डलिंक प्रविष्टियों के लिए सुरक्षा जाँच वास्तविक हार्डलिंक निर्माण तर्क की तुलना में अलग पाथ रिज़ॉल्यूशन सिमेंटिक्स का उपयोग करती है। यह बेमेल एक हमलावर को एक दुर्भावनापूर्ण TAR संग्रह बनाने की अनुमति देता है जो पाथ ट्रैवर्सल सुरक्षा को बायपास करता है और निष्कर्षण निर्देशिका के बाहर मनमानी फ़ाइलों के लिए हार्डलिंक बनाता है। ### विवरण भेद्यता `lib/unpack.js` में मौजूद है। हार्डलिंक निकालते समय, दो फ़ंक्शन लिंकपाथ को अलग-अलग तरीके से संभालते हैं: **`[STRIPABSOLUTEPATH]` में सुरक्षा जाँच:** ```javascript const entryDir = path.posix.dirname(entry.path); const resolved = path.posix.normalize(path.posix.join(entryDir, linkpath)); if (resolved.startsWith('../')) { /* block */ } ``` **`[HARDLINK]` में हार्डलिंक निर्माण:** ```javascript const linkpath = path.resolve(this.cwd, entry.linkpath); fs.linkSync(linkpath, dest); ``` **उदाहरण:** एक एप्लिकेशन `tar.extract({ cwd: '/var/app/uploads/' })` का उपयोग करके एक TAR निकालता है। TAR में प्रविष्टि `a/b/c/d/x`, `../../../../etc/passwd` के हार्डलिंक के रूप में शामिल है। - **सुरक्षा जाँच** प्रविष्टि की मूल निर्देशिका के सापेक्ष लिंकपाथ को हल करती है: `a/b/c/d/ + ../../../../etc/passwd` = `etc/passwd`। कोई `../` उपसर्ग नहीं, इसलिए
कैसे ठीक करें
कोई आधिकारिक पैच उपलब्ध नहीं है। वैकल्पिक समाधान खोजें या अपडेट की निगरानी करें।
अपनी निर्भरताओं की स्वचालित निगरानी करें
जब नई कमज़ोरियाँ आपके प्रोजेक्ट को प्रभावित करें तो अलर्ट पाएं।
मुफ़्त शुरू करें