Acum câteva zile, s-a anunțat informații despre un audit de securitate care a dezvăluit cinci vulnerabilități critice în popularul multiplexor de terminale Ecran GNU, folosit pentru a gestiona mai multe sesiuni de consolă pe un singur terminal.
Una dintre acestea (CVE-2025-23395, cea mai periculoasă vulnerabilitate) permite unui atacator să obțină privilegii de root pe sistemele afectate (vulnerabilitatea afectează doar versiunea 5.0.0 a GNU Screen), inclusiv în distribuții precum Fedora, Arch Linux, NetBSD, printre altele. Alte versiuni precum Debian, Ubuntu și RHEL, însă, folosesc în continuare ramura 4.x, care nu este vulnerabilă la această problemă anume.
CVE-2025-23395: Escaladarea privilegiilor critice
Se menționează că problema apare când GNU Screen este rulat cu bitul root setuid (cazul Arch și NetBSD), deoareceși funcția logfile_reopen() este executată înainte de reducerea privilegiilor, care permite utilizatorului să manipuleze registry-ul pentru a scrie fișiere arbitrare ca root. Într-o fermă obișnuită, șiAtacatorul șterge fișierul jurnal original și îl înlocuiește cu o legătură simbolică. la un fișier de sistem. Când redeschizi fișierul, Screen îl scrie cu permisiuni de root, permițând conținutului rău intenționat să intre.
Această problemă afectează Screen 5.0.0 atunci când rulează cu privilegii setuid-root. Funcția logfile_reopen() nu elimină privilegiile atunci când se operează pe o cale furnizată de utilizator. Aceasta permite utilizatorilor neprivilegiați să creeze fișiere în locații arbitrare cu drepturi de autor root, dreptul de autor (real) al grupului utilizatorului invocat și modul de fișier 0644. Toate datele scrise în Screen PTY vor fi înregistrate în acest fișier. Fișierele existente pot fi folosite și pentru înregistrare în acest mod: datele vor fi adăugate la fișierul în cauză, dar modul și proprietarul fișierului vor rămâne neschimbate.
Acest atac poate duce la controlul total al sistemului dacă este exploatat corect, deoarece vă permite să modificați fișiere sensibile sau să alterați scripturile de pornire. Fedora este parțial protejată deoarece Screen este instalat cu bitul setgid, limitând suprafața de atac.
Alte vulnerabilități relevante
Auditul, realizat de echipa de securitate SUSE Linux, a identificat și alte defecțiuni importante:
- CVE-2025-46802: În sesiunile cu mai mulți utilizatori, un atacator poate obține permisiuni globale de citire și scriere pe dispozitive TTY, cum ar fi /dev/pts/1, afectând atât ramurile 4.x, cât și cele 5.x.
- CVE-2025-46803: Ramura 5.0 setează permisiuni nesigure (0622) pe dispozitivele PTY, permițând scrierea de către orice utilizator.
- CVE-2025-46804: O scurgere de informații permite deducerea existenței fișierelor sau directoarelor folosind mesaje de eroare la definirea variabilei SCREENDIR.
- CVE-2025-46805: O condiție de concurență la trimiterea semnalelor SIGCONT și SIGHUP poate duce la un denial of service.
De asemenea, a fost detectată o utilizare greșită a comenzii strncpy, care poate cauza blocări la executarea comenzilor cu formatare specială, o problemă specifică ramurii 5.0.
Lipsa de întreținere și asistență din partea SUSE
Descoperirea acestor vulnerabilități a scos la iveală probleme mai profunde în întreținerea GNU Screen. Potrivit echipei SUSE, Actualii administratori ai proiectului nu înțeleg pe deplin baza de cod nici probleme de securitate, care i-au obligat să dezvolte singuri patch-uri pentru unele dintre defectele descoperite. Raportul a fost trimis dezvoltatorilor pe 7 februarie, dar întregul set de vulnerabilități nu a putut fi remediat în perioada de grație convenită de 90 de zile.
Ce trebuie să faci dacă folosești GNU Screen?
Utilizatori de sisteme care includ Screen 5.0.0 cu setuid root ar trebui să actualizeze imediat la versiunea 5.0.1 sau reveniți temporar la o versiune 4.x dacă nu sunt disponibile pachete. Ca măsură de atenuare, bitul setuid poate fi eliminat și din executabilul Screen:
sudo chmod u-s /usr/bin/screen
Sin embargo, Acest lucru poate afecta funcționalitatea cum ar fi partajarea sesiunilor între utilizatori. În cele din urmă, merită menționat faptul că versiunea 5.0.1 lansată recent corectează această eroare și altele și este acum disponibilă pe distribuții precum Arch Linux și FreeBSD.
Dacă ești interesat să afle mai multe despre asta, puteți verifica detaliile în următorul link.