
CVE-2024-21533 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, ggit npm पैकेज में एक आर्गुमेंट इंजेक्शन कमजोरी जो --upload-pack Git विकल्प के माध्यम से मनमाना कमांड निष्पादन की अनुमति देती है।
ggit स्वयं का वर्णन इस प्रकार करता है:
Local promise-returning git command wrappers
संसाधन:
इस तर्क इंजेक्शन भेद्यता पर लेख: https://nodejs-security.com/blog/flawed-git-promises-library-on-npm-leads-to-command-injection-vulnerability
मैं ggit npm पैकेज में एक तर्क इंजेक्शन भेद्यता की रिपोर्ट कर रहा हूँ।
यह भेद्यता लाइब्रेरी के clone() API के साथ प्रकट होती है,
जो क्लोन करने के लिए रिमोट URL और क्लोन करने के लिए डिस्क पर फ़ाइल निर्दिष्ट करने की अनुमति देता है।
हालांकि, लाइब्रेरी उपयोगकर्ता इनपुट के लिए स्वच्छता नहीं करती है या दिए गए URL स्कीम को मान्य नहीं करती है,
और न ही यह विकल्पों के अंत को संप्रेषित करने के लिए डबल-डैश POSIX वर्णों (--) का उपयोग करके बाइनरी को कमांड-लाइन फ़्लैग्स को ठीक से पास करता है।
gitइस प्रकार, उपयोगकर्ताओं को Git में --upload-pack कमांड-लाइन विकल्प के कारण एक तर्क इंजेक्शन भेद्यता का शोषण करने की अनुमति मिलती है जिसके परिणामस्वरूप मनमानी कमांड निष्पादित होती हैं।
(outPath) में क्लोन करने के लिए तब भेद्यता लागू होती है।
[email protected] या पहले का संस्करण स्थापित करेंconst clone = require("ggit").cloneRepo;
clone({
url: "--upload-pack=$(touch /tmp/pwned)",
folder: "/tmp/dbd",
}).then(function () {
console.log("cloned repo to destination folder");
});
/tmp/pwned पर बनाई गई नई फ़ाइल देखेंकृपया इस परियोजना में योगदान करने के दिशानिर्देशों के लिए CONTRIBUTING देखें।
Liran Tal