GNU InetUtils paketindeki telnetd sunucusunda bir güvenlik açığı keşfedildi. Bu güvenlik açığı, parola doğrulaması olmadan root dahil herhangi bir kullanıcı olarak bağlantı kurulmasına olanak tanıyor. Henüz bir CVE tanımlayıcısı atanmadı. Güvenlik açığı, InetUtils sürüm 1.9.3'ten (2015) beri mevcut ve mevcut 2.7.0 sürümünde hala yamalanmamış durumda. Yamalar (1, 2) içinde bir düzeltme mevcuttur.
Sorun, telnetd işleminin parolayı kontrol etmek için "/usr/bin/login" yardımcı programını çağırmasından ve istemcinin bağlanırken belirttiği kullanıcı adını argüman olarak geçirmesinden kaynaklanmaktadır. sunucu"Giriş" yardımcı programı, kimlik doğrulaması olmadan giriş yapmayı sağlayan "-f" seçeneğini destekler (bu seçenek, kullanıcının zaten kimlik doğrulaması yapılmış olması durumunda kullanılmak üzere tasarlanmıştır). Bu nedenle, kullanıcı adına "-f" seçeneğini ekleyerek parola doğrulaması olmadan bağlanabilirsiniz.
Normal bir bağlantıda "-f root" gibi bir kullanıcı adı kullanamazsınız, ancak Telnet'in "-a" seçeneğiyle etkinleştirilen otomatik bir bağlantı modu vardır. Bu modda, kullanıcı adı komut satırından alınmaz, bunun yerine USER ortam değişkeni üzerinden iletilir. Giriş yardımcı programı çağrıldığında, bu ortam değişkeninin değeri ek bir kontrol yapılmadan ve özel karakterlerden kaçınılmadan yerine konur. Bu nedenle, root kullanıcısı olarak bağlanmak için, USER ortam değişkenini "-f root" olarak ayarlayın ve "-a" seçeneğini kullanarak Telnet sunucusuna bağlanın: $ USER='-f root' telnet -a server_name
Güvenlik açığına yol açan değişiklik, Mart 2015'te telnetd koduna eklendi ve Kerberos kimlik doğrulaması olmadan otomatik oturum açma modunda kullanıcı adının belirlenmesini engelleyen bir sorunu giderdi. Çözüm olarak, otomatik oturum açma modu için kullanıcı adının ortam değişkeni aracılığıyla iletilmesi desteği eklendi, ancak ortam değişkeninden gelen kullanıcı adı için bir doğrulama kontrolü unutuldu.
Kaynak: opennet.ru
