
GIT भेद्यता | क्लोनिंग पर Carriage Return और RCE
CVE-2025-48384 Git में एक गंभीर भेद्यता है, जो व्यापक रूप से उपयोग की जाने वाली वितरित संस्करण नियंत्रण प्रणाली है। इसमें कॉन्फ़िगरेशन मानों में कैरिज रिटर्न (CR) वर्णों का अनुचित प्रबंधन शामिल है, जो सबमॉड्यूल चेकआउट के दौरान पाथ ट्रैवर्सल समस्याओं का कारण बन सकता है। यह दोष विशिष्ट परिस्थितियों में संभावित मनमाना कोड निष्पादन की अनुमति देता है। यह भेद्यता सार्वजनिक रूप से 8 जुलाई 2025 को प्रकट की गई थी, और अंतिम बार 26 अगस्त 2025 को संशोधित की गई थी। इसे 25 अगस्त 2025 को अमेरिकी साइबर सुरक्षा और बुनियादी ढांचा सुरक्षा एजेंसी (CISA) की ज्ञात शोषित भेद्यताएँ (KEV) सूची में जोड़ा गया है, जो जंगल में सक्रिय शोषण का संकेत देता है, जिसकी निवारण नियत तिथि 15 सितंबर 2025 है।
यह समस्या इस बात से उत्पन्न होती है कि Git कॉन्फ़िगरेशन मानों को कैसे संसाधित करता है:
यह विसंगति किसी सबमॉड्यूल को गलत स्थान पर चेकआउट करने का कारण बन सकती है यदि उसके पथ में अनुगामी CR शामिल है। यदि कोई हमलावर एक सिमलिंक स्थापित करता है जो इस परिवर्तित पथ को सबमॉड्यूल की हुक्स निर्देशिका की ओर इंगित करता है—और सबमॉड्यूल में एक निष्पादन योग्य post-checkout हुक होता है—तो हुक स्क्रिप्ट चेकआउट के बाद अनजाने में निष्पादित हो सकती है, जिसके परिणामस्वरूप मनमाना कोड निष्पादन हो सकता है।
यह भेद्यता Git के कॉन्फ़िग पार्सिंग में व्याख्या संघर्ष का शोषण करती है:
.git/hooks/post-checkoutgit submodule updategit clone --recurse-submodulesइसे निम्नलिखित के अंतर्गत वर्गीकृत किया गया है:
हमला वेक्टर नेटवर्क-आधारित है (AV:N), उच्च जटिलता (AC:H), निम्न विशेषाधिकार आवश्यक (PR:L), आवश्यक उपयोगकर्ता सहभागिता (UI:R), और परिवर्तित दायरा (S:C), जो गोपनीयता, अखंडता और उपलब्धता को उच्च रूप से प्रभावित करता है (C:H/I:H/A:H)।
यह भेद्यता निम्नलिखित पैच किए गए रिलीज़ से पहले के Git संस्करणों को प्रभावित करती है:
यह विभिन्न प्लेटफ़ॉर्मों पर Git को प्रभावित करता है, जिसमें Linux, macOS और Windows शामिल हैं, लेकिन यह विशेष रूप से डेवलपर वातावरण, CI/CD पाइपलाइनों (जैसे, GitHub Actions, GitLab CI) और उन स्थानों पर प्रासंगिक है जहाँ अविश्वसनीय रिपॉजिटरी से Git सबमॉड्यूल क्लोन किए जाते हैं।
--recurse-submodules के साथ रिपॉजिटरी क्लोन करना।CVSS विवरण अभी तक NVD में पूरी तरह से स्कोर नहीं किए गए हैं (CVSS 4.0 लंबित), लेकिन सलाहकार के CVSS 3.1 मेट्रिक्स के आधार पर, यह गंभीर स्तर (क्रिटिकल) के अनुरूप है (अनुमानित CVSS 8.8, जैसा कि व्यापक CVE सूचियों में पहले उल्लेख किया गया है)।
--recurse-submodules) क्लोन करने से बचें।यह भेद्यता संस्करण नियंत्रण प्रणालियों, विशेष रूप से सबमॉड्यूल, में सुरक्षित हैंडलिंग के महत्व को उजागर करती है। यदि आप उत्पादन या विकास वातावरण में Git का उपयोग कर रहे हैं, तो सक्रिय शोषण स्थिति को देखते हुए तुरंत अपडेट को प्राथमिकता दें।
.gitmodules https://github.com/s41r4j/CVE-2025-48384-submodule.git की ओर इंगित करता है, लेकिन PoC इसे ऑफ़लाइन परीक्षण के लिए स्थानीय प्रति पर पुनर्लिखित करता है।चलाएँ:
bash scripts/poc.sh
यह क्या करता है:
$HOME/flag.txt पर एक फ़्लैग बनाता है।malicious-submodule-repo/ को कंटेनर में /tmp पर कॉपी करता है।post-checkout हुक को ट्रिगर करने के लिए चेकआउट को बाध्य करता है।/tmp/flag.txt को प्रिंट करता है।नोट्स:
sub^M (CR) है जिसे gitlink के रूप में संग्रहीत किया जाता है; स्वच्छ किया गया पथ sub एक सिमलिंक के माध्यम से .git/hooks पर हल होता है, इसलिए सबमॉड्यूल का ट्रैक किया गया post-checkout एक वास्तविक हुक के रूप में उतरता है और चलता है।bash scripts/update-gitlink.sh।