Откриена е ранливост на telnetd серверот од пакетот GNU InetUtils. Оваа ранливост овозможува поврзување со кој било корисник, вклучително и root, без проверка на лозинката. CVE идентификатор сè уште не е доделен. Ранливоста е присутна од верзијата 1.9.3 (2015) на InetUtils и останува незакрпена во тековната верзија 2.7.0. Поправка е достапна во закрпите (1, 2).
Проблемот е предизвикан од фактот што за да ја провери лозинката, процесот telnetd ја повикува алатката „/usr/bin/login“, пренесувајќи го како аргумент корисничкото име наведено од клиентот при поврзување со серверАлатката „најавување“ ја поддржува опцијата „-f“, која овозможува најавување без автентикација (оваа опција е наменета да се користи кога корисникот веќе е автентициран). Затоа, со замена на опцијата „-f“ во корисничкото име, можете да се поврзете без верификација на лозинката.
Со нормална конекција, не можете да користите корисничко име како „-f root“, но Telnet има автоматски режим на конекција активиран со опцијата „-a“. Во овој режим, корисничкото име не се зема од командната линија, туку се пренесува преку променливата на околината USER. Кога беше повикана алатката за најавување, вредноста на оваа променлива на околината беше заменета без дополнителна проверка и без избегнување на специјални знаци. Затоа, за да се поврзете како root корисник, едноставно поставете ја променливата на околината USER на „-f root“ и поврзете се со Telnet серверот користејќи ја опцијата „-a“: $ USER='-f root' telnet -a server_name
Промената што ја воведе ранливоста беше додадена во telnetd кодот во март 2015 година и се справи со проблемот што спречуваше корисничкото име да се утврди во режим на автоматско најавување без автентикација на Kerberos. Како решение, беше додадена поддршка за пренесување на корисничкото име за режим на автоматско најавување преку променлива на околината, но проверката за валидација за корисничкото име од променливата на околината беше заборавена.
Извор: opennet.ru
