V konzolovom správci okien (multiplexer terminálov) GNU screen, ktorý poskytuje viac okien v konzole, bolo identifikovaných 5 zraniteľností. Najvážnejší problém (CVE-2025-23395) umožňuje získať práva root v systéme. Oprava je súčasťou dnešného vydania screen 5.0.1.
Zraniteľnosť CVE-2025-23395 sa prejavuje iba vo verzii screen 5.0.0, ktorá je dodávaná v Fedora Linux, Arch Linux, NetBSD, OpenBSD a Alpine. V Debian, Ubuntu, RHEL (EPEL 9), Gentoo, FreeBSD, SUSE/openSUSE a OpenWrt sa naďalej dodáva verzia screen 4.x. Zneužitie zraniteľnosti je možné v systémoch, ktoré inštalujú spustiteľný súbor screen s príznakom setuid root, napríklad v Arch Linux a NetBSD. V Fedore je nástroj dodávaný s príznakom setgid na získanie práv skupiny screen, čo umožňuje umiestňovanie soketov v systémovom adresári /run/screen, čo obmedzuje riziko útoku cez odmietanie služieb.
Zraniteľnosť je spôsobená tým, že pri spustení s právami root sa funkcia logfile_reopen() vykonáva pred odinštalovaním privilegovaní, ale spracováva údaje v kontexte adresárov aktuálneho neprivilegovaného používateľa, ktorý spustil screen. Je zaujímavé, že počiatočné otvorenie logu sa vykonáva s korektným odinštalovaním privilégií, ale pri opätovnom otvorení súboru s logom odinštalovanie privilégií nie je vykonávané.
Prostredníctvom manipulácií s aktivovaním režimu zaznamenávania obsahu relácie môže používateľ dosiahnuť zápis údajov do súboru s právami root, pričom samotný súbor môže byť uložený v domácom adresári používateľa. Útok spočíva v odstránení vytvoreného súboru s logom a jeho nahradení symbolickým odkazy, ktorý ukazuje na akýkoľvek súbor v systéme. Ak súbor už existuje, údaje sa do neho bez zmeny vlastníka pridajú so obsahom obrazovky v relácii screen. Ak súbor neexistuje, bude vytvorený s právami 0644, vlastníkom root a skupinou ako aktuálny používateľ.
Algoritmus útoku, ktorý vytvára súbor /etc/profile.d/exploit.sh s príkazom „chown $USER /root“:
- Vytvorenie relácie screen s aktivovaním vedenia logu $ screen -Logfile $HOME/screen.log
- Stlačenie kombinácie klávesov Ctrl-a-H na aktivovanie logovania.
- Odstránenie súboru s logom a jeho náhrada symbolickým odkazom, ktorý vedie k vytvoreniu súboru /etc/profile.d/exploit.sh $ rm $HOME/screen.log; ln -s /etc/profile.d/exploit.sh $HOME/screen.log
- Návrat do relácie screen a zobrazenie údajov, ktoré budú zapísané do súboru s logom. $ echo -e "\nchown $USER \/root;"
- Po pripojení skutočného rootu k systému sa spustí skript \/etc\/profile.d\/exploit.sh, ktorý zmení vlastníka pre adresár \/root. $ ls -lhd \/root drwxr-x— 5 user root 4.0K 30. decembra 2020 .
- Podobne je možné vytvoriť súbory s konfiguráciou sudo alebo pridať príkazy na koniec systémových skriptov.
Menej nebezpečné zraniteľnosti v screen:
- CVE-2025-46802 — zachytenie zariadenia TTY v viacužívateľských reláciách (užívateľ môže dosiahnuť nastavenie práv pre zariadenie \/dev\/pts\/1 na crw-rw-rw-). Problém sa prejavuje v vetvách screen 4.x a 5.x.
- CVE-2025-46803 — nastavenie predvolených práv 0622 na zariadenie PTY, ktoré umožňujú zápis akýmkoľvek užívateľom. Problém sa prejavuje iba vo vetve screen 5.0.
- CVE-2025-46804 — únik informácií o existencii súborov a adresárov v uzavretých adresároch (pri zadávaní adresára pre sokety, pomocou premennej prostredia SCREENDIR, nástroj vydáva rôzne texty chýb, ktoré umožňujú odhaliť existenciu súborov a adresárov s daným menom). Problém sa prejavuje v vetvách screen 4.x a 5.x.
- CVE-2025-46805 — stav pretekov pri posielaní signálov SIGCONT a SIGHUP, vedúci k odmietnutiu obsluhy. Problém sa prejavuje v vetvách screen 4.x a 5.x.
- Nesprávne používanie funkcie strncpy (nahradenie strcpy za strncpy bez zohľadnenia rozdielu v spracovaní nulových symbolov "\0"), čo vedie k havárii pri vykonávaní špeciálne upravených príkazov. Problém sa prejavuje iba vo vetve screen 5.0.
Zraniteľnosti boli identifikované počas auditu kódovej základne GNU screen, ktorý vykonala tím zabezpečenia distribúcie SUSE Linux. Vývojárom screen boli informácie o zraniteľnosti zaslané 7. februára, ale v rámci stanovených 90 dní sa im nepodarilo pripraviť opravy pre všetky zraniteľnosti a zamestnanci SUSE museli pripraviť niektoré záplaty samostatne. Podľa názorov auditu, súčasní zodpovední za GNU screen sa dostatočne neorientujú v kódovej základni projektu a nie sú schopní úplne pochopiť zistené problémy zabezpečenia.
Zdroj: opennet.ru
