Prieš kelias dienas buvo paskelbta, informacija apie saugumo auditą kuris atskleidė penkis kritinius populiaraus terminalo multipleksoriaus pažeidžiamumus GNU ekranas, naudojamas keliems konsolės seansams valdyti viename terminale.
Vienas iš jų (CVE-2025-23395, pavojingiausias pažeidžiamumas) leidžia užpuolikui gauti root teises paveiktose sistemose (pažeidžiamumas paveikia tik „GNU Screen“ 5.0.0 versiją), įskaitant tokias platinimo versijas kaip „Fedora“, „Arch Linux“, „NetBSD“ ir kitas. Tačiau kitos versijos, tokios kaip „Debian“, „Ubuntu“ ir „RHEL“, vis dar naudoja 4.x šaką, kuri nėra pažeidžiama šio konkretaus trūkumo.
CVE-2025-23395: Svarbiausių privilegijų eskalavimas
Teigiama, kad problema kyla kai „GNU Screen“ paleidžiamas su „setuid root“ bitu (Arch ir NetBSD atveju), nesir funkcija „logfile_reopen()“ vykdoma prieš sumažinant privilegijas, kuri leidžia vartotojui manipuliuoti registru ir rašyti bet kokius failus kaip root. Įprastame ūkyje irUžpuolikas ištrina originalų žurnalo failą ir pakeičia jį simboline nuoroda. į sistemos failą. Kai iš naujo atidarote failą, „Screen“ jį įrašo su root teisėmis, leisdama kenkėjiškam turiniui patekti.
Ši problema paveikia „Screen 5.0.0“, kai ji veikia su „setuid-root“ teisėmis. Funkcija „logfile_reopen()“ nepašalina privilegijų, kai veikia vartotojo nurodytame kelyje. Tai leidžia neprivilegijuotiems vartotojams kurti failus savavališkose vietose su root nuosavybe, (tikra) iškviečiančio vartotojo grupės nuosavybe ir failo režimu 0644. Visi į „Screen PTY“ įrašyti duomenys bus registruojami šiame faile. Esami failai taip pat gali būti naudojami registracijai tokiu būdu: duomenys bus pridėti prie atitinkamo failo, tačiau failo režimas ir nuosavybė išliks nepakitę.
Ši ataka tinkamai išnaudojus, galima visiškai kontroliuoti sistemą, nes tai leidžia modifikuoti slaptus failus arba pakeisti paleidimo scenarijus. „Fedora“ yra iš dalies apsaugota, nes „Screen“ įdiegtas su „setgid“ bitu, kuris riboja atakos paviršių.
Kiti svarbūs pažeidžiamumai
Auditą atliko „SUSE Linux“ saugumo komanda., taip pat nustatė kitų svarbių trūkumų:
- CVE-2025-46802: Kelių vartotojų sesijose užpuolikas gali gauti visuotines skaitymo ir rašymo teises TTY įrenginiuose, tokiuose kaip /dev/pts/1, ir tai paveiks tiek 4.x, tiek 5.x šakas.
- CVE-2025-46803: 5.0 šaka nustato nesaugias teises (0622) PTY įrenginiuose, leisdama rašyti bet kuriam vartotojui.
- CVE-2025-46804: Informacijos nutekėjimas leidžia nustatyti failų ar katalogų egzistavimą naudojant klaidų pranešimus, kai apibrėžiamas SCREENDIR kintamasis.
- CVE-2025-46805: Lenktynių sąlyga siunčiant SIGCONT ir SIGHUP signalus gali sukelti paslaugos teikimo sutrikdymą.
Taip pat buvo aptiktas netinkamas „strncpy“ naudojimas, dėl kurio gali atsirasti gedimų vykdant komandas su specialiu formatavimu – tai problema, būdinga tik 5.0 atšakai.
SUSE priežiūros ir palaikymo trūkumas
Šių pažeidžiamumų atradimas atskleidė gilesnes „GNU Screen“ priežiūros problemas. Pasak SUSE komandos, Dabartiniai projekto prižiūrėtojai iki galo nesupranta kodo bazės nei saugumo problemų, dėl kurių jie buvo priversti pataisyti kai kuriuos aptiktus trūkumus savarankiškai. Ataskaita kūrėjams buvo išsiųsta vasario 7 d., tačiau visų pažeidžiamumų nepavyko ištaisyti per sutartą 90 dienų lengvatinį laikotarpį.
Ką daryti, jei naudojate GNU Screen?
Sistemų, kuriose yra „Screen 5.0.0“ su setuid root, naudotojai turėtų nedelsiant atnaujinti į 5.0.1 versiją arba laikinai grįžti prie 4.x versijos, jei nėra prieinamų paketų. Kaip švelninimo priemonė, „setuid“ bitą taip pat galima pašalinti iš vykdomojo failo „Screen“:
sudo chmod u-s /usr/bin/screen
Tačiau Tai gali paveikti funkcionalumą pavyzdžiui, sesijų bendrinimas tarp naudotojų. Galiausiai verta paminėti, kad neseniai išleista 5.0.1 versija ištaiso šią ir kitas klaidas ir dabar yra prieinama tokiose distribucijose kaip „Arch Linux“ ir „FreeBSD“.
Kakleliai domina sužinoti daugiau apie tai, išsamią informaciją galite patikrinti sekanti nuoroda.