A GNU InetUtils csomag telnetd szerverében egy sebezhetőséget fedeztek fel. A sebezhetőség lehetővé teszi a csatlakozást bármely felhasználóként, beleértve a root felhasználót is, jelszó-ellenőrzés nélkül. CVE-azonosítót még nem rendeltek hozzá. A sebezhetőség az InetUtils 1.9.3-as verziója (2015) óta jelen van, és a jelenlegi 2.7.0-s kiadásban sem található meg javítócsomag. Javítás elérhető a patchekben (1, 2).
A problémát az okozza, hogy a jelszó ellenőrzéséhez a telnetd folyamat meghívja az "/usr/bin/login" segédprogramot, argumentumként átadva a kliens által a csatlakozáskor megadott felhasználónevet. szerverA „login” segédprogram támogatja az „-f” kapcsolót, amely lehetővé teszi a hitelesítés nélküli bejelentkezést (ez a kapcsoló akkor használható, ha a felhasználót már hitelesítették). Ezért a felhasználónév „-f” kapcsolójának behelyettesítésével jelszó-ellenőrzés nélkül is csatlakozhat.
Normál kapcsolat esetén nem használhatsz olyan felhasználónevet, mint a "-f root", de a Telnet rendelkezik egy automatikus csatlakozási móddal, amelyet az "-a" opció aktivál. Ebben a módban a felhasználónevet nem a parancssorból veszi a rendszer, hanem a USER környezeti változón keresztül adja át. A bejelentkezési segédprogram meghívásakor a környezeti változó értéke további ellenőrzés és speciális karakterek nélkül lett behelyettesítve. Tehát root felhasználóként való csatlakozáshoz egyszerűen állítsd a USER környezeti változót "-f root" értékre, és csatlakozz a Telnet szerverhez az "-a" opcióval: $ USER='-f root' telnet -a server_name
A sebezhetőséget bevezető módosítást 2015 márciusában adták hozzá a telnetd kódhoz, és egy olyan hibát kezelt, amely megakadályozta a felhasználónév meghatározását automatikus bejelentkezési módban Kerberos hitelesítés nélkül. Megoldásként támogatást adtak a felhasználónév környezeti változón keresztüli átadásához automatikus bejelentkezési módban, de a felhasználónév környezeti változóból történő érvényesítési ellenőrzése elfelejtődött.
Forrás: opennet.ru
