Spoločnosť Qualys
Diaľkovo zneužiteľná zraniteľnosť je spôsobená chybou pri usporiadaní volania na autentizačnú obsluhu v knižnici libc, ktorá volá
/usr/libexec/auth/login_style program odovzdávajúci argumenty na príkazovom riadku. Vrátane pri volaní login_style pomocou voliteľného parametra "-s service" je povolené odovzdanie názvu protokolu. Ak je na začiatku používateľského mena použitý znak "-", toto meno sa bude pri spustení login_style považovať za možnosť. Ak teda počas autentifikácie ako používateľské meno zadáte „-schallenge“ alebo „-schallenge: passwd“, login_style bude vnímať požiadavku ako požiadavku na použitie handlera.
Problém je v tom, že protokol S/Key v login_style je podporovaný len formálne, ale v skutočnosti je ignorovaný s výstupom znamenia úspešnej autentifikácie. Útočník sa teda môže vydávať za používateľa „-schallenge“ a obísť autentifikáciu a získať prístup bez zadania hesla alebo kľúčov. Všetky sieťové služby, ktoré používajú bežné volania libc na autentifikáciu, sú potenciálne ovplyvnené problémom. Napríklad schopnosť obísť autentifikáciu je potvrdená v smtpd (AUTH PLAIN), ldapd a radiusd.
Zraniteľnosť sa v sshd neprejavuje, pretože má dodatočnú ochranu s kontrolou prítomnosti používateľa v systéme. Sshd však možno použiť na testovanie, či je systém náchylný na zraniteľnosť – pri prístupe k používateľskému menu „-sresponse:passwd“ sa spojenie zablokuje, pretože sshd čaká na login_passwd, aby vrátil parametre volania (výzva) a login_passwd čaká na prenos chýbajúcich parametrov (názov "- odpoveď" je braný ako možnosť). Potenciálny lokálny útočník by sa mohol pokúsiť obísť autentifikáciu v obslužnom programe su, ale odovzdanie názvu "-sresponse" spôsobí zlyhanie procesu v dôsledku návratu nulového ukazovateľa pri vykonávaní funkcie getpwnam_r("-schallenge", ...) .
Ďalšie zraniteľnosti:
- CVE-2019-19520 – Miestna eskalácia privilégií prostredníctvom manipulácie s pomôckou xlock, ktorá sa dodáva s príznakom sgid, ktorý zmení skupinu na „auth“. V kóde xlock je predefinovanie knižničných ciest zakázané iba pri zmene ID používateľa (setuid), čo útočníkovi umožňuje zmeniť premennú prostredia „LIBGL_DRIVERS_PATH“ a organizovať načítanie svojej zdieľanej knižnice, ktorej kód sa spustí. po eskalácii privilégií do skupiny „auth“.
- CVE-2019-19522 – Umožňuje miestnemu používateľovi v skupine „auth“ spustiť kód ako root, keď je v systéme povolená autentifikácia S/Key alebo YubiKey (predvolene nie je povolená). Členstvo v skupine „auth“, ku ktorej je možné získať prístup využitím vyššie uvedenej zraniteľnosti xlock, umožňuje zapisovanie súborov do adresárov /etc/skey a /var/db/yubikey. Útočník by napríklad mohol pridať nový súbor /etc/skey/root na vygenerovanie jednorazových kľúčov na autentifikáciu root pomocou S/Key.
- CVE-2019-19519 - Možnosť zvýšiť limity zdrojov pomocou manipulácií s nástrojom su. Pri zadaní voľby "-L", ktorá znamená cyklické opakovanie pokusov o autentifikáciu v prípade zlyhania, sa trieda užívateľa nastaví iba raz a pri ďalších pokusoch sa neresetuje. Útočník môže spustiť „su -l -L“ pri prvom pokuse o zadanie prihlásenia niekoho iného s inou triedou účtu, ale pri druhom pokuse o úspešnú autentifikáciu pod sebou. V tejto situácii budú užívateľovi nastavené limity zodpovedajúce triede užívateľa zadanej pri prvom pokuse (napríklad maximálny počet procesov alebo veľkosť pamäte pre proces). Metóda funguje iba pre limity výpožičiek od neprivilegovaných používateľov, pretože používateľ root musí byť v skupine kolies).
Okrem toho je možné poznamenať
Zdroj: opennet.ru