GNU InetUtils setindəki telnetd serverində parol yoxlanılmadan istənilən istifadəçi, o cümlədən root istifadəçisinin qoşulmasına icazə verən bir zəiflik aşkar edilib. CVE identifikatoru hələ qeydə alınmayıb. Zəiflik InetUtils 1.9.3 versiyasından (2015-ci il) başlayaraq mövcuddur və 2.7.0 versiyasında hələ düzəldilməyib. Düzəltmə yamanmalar formasında mövcuddur (1, 2).
Problemin kökü ondadır ki, telnetd prosesi, qoşulma zamanı müştəri tərəfindən təqdim edilən istifadəçi adını arqument olaraq verərək parol yoxlaması üçün «/usr/bin/login» utilitini çağırır. sunucunuz. «login» utiliti, autentifikasiya icra edilmədən giriş imkanı verən «-f» seçimini dəstəkləyir (bu seçimin, istifadəçinin artıq təsdiqləndiyi zaman istifadə edilməsi nəzərdə tutulur). Beləliklə, əgər istifadəçi adında «-f» seçiminin yerinə yetirilməsinə nail olunarsa, parol yoxlaması olmadan qoşulma mümkündür.
Adətən qoşulma zamanı «-f root» formasında istifadəçi adı istifadə edilə bilmir, amma telnetdə «-a» seçimini aktivləşdirərək avtomatik qoşulma rejimi var. Bu rejimdə istifadəçi adı komanda xəttindən yox, USER mühit dəyişəni vasitəsilə verilir. «login» utilitinin çağırılması zamanı bu mühit dəyişəninin dəyəri əlavə yoxlama aparılmadan və xüsusi simvollar escap edilmədən yerinə yetirilirdi. Beləliklə, root istifadəçisi ilə qoşulmaq üçün USER mühit dəyişəninə «-f root» dəyərini vermək və telnet serverinə qoşularkən «-a» seçimini göstərmək kifayətdir: $ USER='-f root' telnet -a server_adı
Zəifliyə səbəb olan dəyişiklik telnetd koduna 2015-ci ilin mart ayında əlavə edilmişdir və Kerberos-da autentifikasiya olmadan auto-login rejimində istifadəçi adının müəyyən edilməsinə icazə verməyən bir problemin aradan qaldırılması ilə əlaqədar idi. Həll yolu kimi auto-login rejimi üçün istifadəçi adının mühit dəyişəni vasitəsilə ötürülməsi dəstəkləndi, lakin mühit dəyişənindən istifadəçi adının düzgünlüyünü yoxlamaq üçün bir yoxlama əlavə edilməsini unutdular.
Mənbə: opennet.ru
