Zranitelnost v GNU screen, umožňující provést kód s právy root

V konzolovém správci oken (multiplexoru terminálů) GNU screen, který poskytuje vícerozměrné rozhraní v konzoli, bylo nalezeno 5 zranitelností. Nejnebezpečnější problém (CVE-2025-23395) umožňuje získat práva roota v systému. Oprava je zahrnuta v dnešním vydání screenu 5.0.1.

Zranitelnost CVE-2025-23395 se projevuje pouze ve verzi screenu 5.0.0, která je dodávána ve Fedora Linux, Arch Linux, NetBSD, OpenBSD a Alpine. V Debianu, Ubuntu, RHEL (EPEL 9), Gentoo, FreeBSD, SUSE/openSUSE a OpenWrt je i nadále dodávána verze screenu 4.x. Exploitace zranitelnosti je možná v systémech, které instalují spustitelný soubor screenu s příznakem setuid root, například v Arch Linuxu a NetBSD. V Fedoře je nástroj instalován s příznakem setgid pro získání práv skupiny screen, což umožňuje umístění soketů do systémového adresáře /run/screen, což omezuje možnosti útoku odmítnutí služby.

Zranitelnost je způsobena tím, že při spuštění s právy roota je funkce logfile_reopen() vykonána před odebráním privilegíí, ale zpracovává data v kontextu adresářů aktuálního neprivilegovaného uživatele, který spustil screen. Zajímavé je, že počáteční otevření logu se provádí se správným odebráním privilegíí, ale při opětovném otevření souboru s logem již odebrání privilegíí není provedeno.

Manipulací se zapnutím režimu logování obsahu sezení může uživatel dosáhnout zapsání dat do souboru s právy roota, přičemž samotný soubor může být uložen v domácím adresáři uživatele. Útok spočívá v odstranění vytvořeného souboru s logem a jeho nahrazení symbolickým odkazem, který ukáže na jakýkoli soubor v systému. Pokud soubor již existuje, bez změny vlastníka budou do něj přidány údaje se obsahem obrazovky v sezení screenu. Pokud soubor neexistuje, bude vytvořen s právy 0644, vlastníkem root a skupinou jako je aktuální uživatel.

Algoritmus útoku, který vytváří soubor /etc/profile.d/exploit.sh s příkazem „chown $USER /root“:

  • Vytvoření sezení screenu se zapnutím logování $ screen -Logfile $HOME/screen.log
  • Stisknutí kombinace kláves Ctrl-a-H pro zapnutí logu.
  • Odstranění souboru s logem a jeho nahrazení symbolickým odkazem, který povede k vytvoření souboru /etc/profile.d/exploit.sh $ rm $HOME/screen.log; ln -s /etc/profile.d/exploit.sh $HOME/screen.log
  • Návrat do sezení screenu a zobrazení dat, která budou zapsána do souboru s logem. $ echo -e "\nchown $USER /root;"
  • Jakmile se k systému připojí skutečný root, spustí se skript /etc/profile.d/exploit.sh, který změní vlastníka pro adresář /root. $ ls -lhd /root drwxr-x— 5 user root 4.0K 30. Dec 2020 .
  • Podobně lze vytvořit konfigurační soubory sudo nebo přidat příkazy na konec systémových skriptů.

Méně nebezpečné zranitelnosti v screen:

  • CVE-2025-46802 — převzetí zařízení TTY v vícerozměrných sezeních (uživatel může dosáhnout nastavení práv pro zařízení /dev/pts/1 na crw-rw-rw-). Problém se projevuje ve větvích screen 4.x a 5.x.
  • CVE-2025-46803 — nastavení výchozích práv 0622 na zařízení PTY, povolující zápis jakýmkoli uživatelům. Problém se projevuje pouze ve větvi screen 5.0.
  • CVE-2025-46804 — únik informací o existenci souborů a adresářů v uzamčených adresářích (při uvedení adresáře pro sokety, pomocí proměnné prostředí SCREENDIR, nástroj vrací různé texty chyb, které naznačují existenci souborů a adresářů se zadaným jménem). Problém se projevuje ve větvích screen 4.x a 5.x.
  • CVE-2025-46805 — stav závodu při odesílání signálů SIGCONT a SIGHUP, vedoucí k odmítnutí služeb. Problém se projevuje ve větvích screen 4.x a 5.x.
  • Nesprávné použití funkce strncpy (nahrazení strcpy za strncpy bez ohledu na rozdíly v zpracování nulových znaků "\0"), vedoucí k havárii při provádění speciálně formátovaných příkazů. Problém se projevuje pouze ve větvi screen 5.0.

Zranitelnosti byly zjištěny během auditu kódu GNU screen, provedeného týmem odpovědným za bezpečnost distribuce SUSE Linux. Vývojářům screenu byly informace o zranitelnosti zaslány 7. února, ale během přidělených 90 dnů se jim nepodařilo připravit opravy pro všechny zranitelnosti a pracovníci SUSE museli připravit některé patche sami. Podle názoru výzkumníků provádějících audit současní správci GNU screen dostatečně dobře nerozumí kódové základně projektu a nejsou schopni plně pochopit zjištěné problémy bezpečnosti.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster