V programu GNU Screen je bilo odkritih več ranljivosti, ki so omogočale pridobitev root pravic.

ranljivost

Pred nekaj dnevi je bilo objavljeno informacije o varnostnem pregledu ki je razkrila pet kritičnih ranljivosti v priljubljenem terminalskem multiplekserju GNU zaslon, ki se uporablja za upravljanje več konzolnih sej na enem terminalu.

Ena od teh (CVE-2025-23395, najnevarnejša ranljivost) omogoča napadalcu pridobitev root pravic na prizadetih sistemih (ranljivost vpliva le na različico 5.0.0 GNU Screen), vključno z distribucijami, kot so Fedora, Arch Linux, NetBSD in druge. Druge različice, kot so Debian, Ubuntu in RHEL, pa še vedno uporabljajo vejo 4.x, ki ni ranljiva za to posebno napako.

CVE-2025-23395: Eskalacija kritičnih privilegijev

Omenjeno je, da se težava pojavlja ko se GNU Screen zažene s korenskim bitom setuid (primer Archa in NetBSD), odkarin funkcija logfile_reopen() se izvede pred znižanjem privilegijev, ki uporabniku omogoča manipulacijo registra za pisanje poljubnih datotek kot root. Na tipični kmetiji inNapadalec izbriše izvirno datoteko dnevnika in jo nadomesti s simbolno povezavo. v sistemsko datoteko. Ko datoteko ponovno odprete, jo Screen zapiše s korenskimi pravicami, kar omogoči vstop zlonamerne vsebine.

Ta težava vpliva na zaslon 5.0.0, ko se izvaja s privilegiji setuid-root. Funkcija logfile_reopen() ne odstrani privilegijev pri delovanju na poti, ki jo je podal uporabnik. To omogoča neprivilegiranim uporabnikom ustvarjanje datotek na poljubnih lokacijah z lastništvom root, (dejanskim) lastništvom skupine uporabnika, ki kliče, in načinom datoteke 0644. Vsi podatki, zapisani v Screen PTY, bodo zabeleženi v to datoteko. Obstoječe datoteke se lahko na ta način uporabijo tudi za registracijo: podatki bodo dodani zadevni datoteki, vendar način datoteke in lastništvo ostaneta nespremenjena.

Ta napad lahko ob pravilni uporabi privede do popolnega nadzora nad sistemom, saj vam omogoča spreminjanje občutljivih datotek ali spreminjanje zagonskih skriptov. Fedora je delno zaščitena, ker je Screen nameščen z bitom setgid, kar omejuje površino napada.

Druge pomembne ranljivosti

Revizijo, ki jo je izvedla varnostna ekipa SUSE Linux, je ugotovil tudi druge pomembne pomanjkljivosti:

  • CVE-2025-46802: V večuporabniških sejah lahko napadalec pridobi globalna dovoljenja za branje in pisanje na napravah TTY, kot je /dev/pts/1, kar vpliva na veje 4.x in 5.x.
  • CVE-2025-46803: Veja 5.0 nastavi nezaščitena dovoljenja (0622) na napravah PTY, kar omogoča pisanje kateremu koli uporabniku.
  • CVE-2025-46804: Uhajanje informacij omogoča sklepanje o obstoju datotek ali imenikov z uporabo sporočil o napakah pri definiranju spremenljivke SCREENDIR.
  • CVE-2025-46805: Zaradi tekmovalnega stanja pri pošiljanju signalov SIGCONT in SIGHUP lahko pride do zavrnitve storitve.

Zaznana je bila tudi zloraba strncpy, ki lahko povzroči zrušitve pri izvajanju ukazov s posebnim oblikovanjem, kar je težava, ki je značilna izključno za vejo 5.0.

Pomanjkanje vzdrževanja in podpore s strani SUSE

Odkritje teh ranljivosti je razkrilo globlje težave pri vzdrževanju GNU Screen. Po mnenju ekipe SUSE, Trenutni vzdrževalci projekta ne razumejo v celoti kodne baze niti varnostnih težav, zaradi česar so morali sami razviti popravke za nekatere odkrite pomanjkljivosti. Poročilo je bilo razvijalcem poslano 7. februarja, vendar celotnega nabora ranljivosti ni bilo mogoče odpraviti v dogovorjenem 90-dnevnem roku.

Kaj storiti, če uporabljate GNU Screen?

Uporabniki sistemov, ki vključujejo Screen 5.0.0 z nastavljenim root ID-jem bi moral takoj posodobiti na različico 5.0.1 ali začasno se vrnite na različico 4.x, če ni na voljo nobenih paketov. Kot omilitveni ukrep se lahko bit setuid odstrani tudi iz izvedljive datoteke Screen:

sudo chmod u-s /usr/bin/screen

Vendar pa To lahko vpliva na funkcionalnost na primer deljenje sej med uporabniki. Na koncu velja omeniti, da nedavno izdana različica 5.0.1 odpravlja to in druge napake in je zdaj na voljo na distribucijah, kot sta Arch Linux in FreeBSD.

Če ste zanima več o tem, podrobnosti lahko preverite v naslednja povezava.