Kwetsbaarheid in GNU screen die het mogelijk maakt code uit te voeren met root-rechten

In de consolevensterbeheerder (terminalmultiplexer) GNU screen, die een multi-window interface in de console biedt, zijn 5 kwetsbaarheden ontdekt. Het meest kritieke probleem (CVE-2025-23395) stelt een aanvaller in staat root-rechten op het systeem te verkrijgen. De oplossing is opgenomen in de release van vandaag, screen 5.0.1.

De kwetsbaarheid CVE-2025-23395 komt alleen voor in de branch screen 5.0.0, die wordt geleverd met Fedora Linux, Arch Linux, NetBSD, OpenBSD en Alpine. In Debian, Ubuntu, RHEL (EPEL 9), Gentoo, FreeBSD, SUSE/openSUSE en OpenWrt blijft de branch screen 4.x beschikbaar. Exploitatie van de kwetsbaarheid is mogelijk in systemen die het uitvoerbare bestand screen met de setuid root-vlag installeren, zoals in Arch Linux en NetBSD. In Fedora wordt het hulpprogramma geĆÆnstalleerd met de setgid-vlag om de rechten van de screen-groep te verkrijgen, waarmee sockets in de systeemcatalogus /run/screen kunnen worden geplaatst, wat de mogelijkheden voor een denial-of-service-aanval beperkt.

De kwetsbaarheid wordt veroorzaakt doordat de functie logfile_reopen() wordt uitgevoerd met root-rechten vóór het terugzetten van de privileges, maar gegevens verwerkt worden in de context van de mappen van de huidige niet-bevoegde gebruiker die screen heeft opgestart. Opmerkelijk is dat de eerste opening van het logboek correct plaatsvindt met terugzetting van de privileges, maar bij het opnieuw openen van het logboek wordt deze terugzetting niet uitgevoerd.

Door manipulaties met het inschakelen van de loggingmodus kan een gebruiker erin slagen om gegevens in een bestand met root-rechten te laten schrijven, terwijl het bestand zelf in de thuismap van de gebruiker kan worden opgeslagen. De aanval bestaat uit het verwijderen van het aangemaakte logbestand en het vervangen door een symbolische link die naar elk bestand in het systeem wijst. Als het bestand al bestaat, worden de gegevens met de inhoud van het scherm in de screen-sessie toegevoegd zonder de eigenaar te wijzigen. Als het bestand niet bestaat, wordt het aangemaakt met rechten 0644, eigenaar root en de groep zoals de huidige gebruiker.

Het aanvalsalgoritme dat het bestand /etc/profile.d/exploit.sh met het commando ā€œchown $USER /rootā€ aanmaakt:

  • Een screen-sessie aanmaken met het inschakelen van logging $ screen -Logfile $HOME/screen.log
  • De toetscombinatie Ctrl-a-H indrukken om logging in te schakelen.
  • Het logbestand verwijderen en vervangen door een symbolische link, wat leidt tot het maken van het bestand /etc/profile.d/exploit.sh $ rm $HOME/screen.log; ln -s /etc/profile.d/exploit.sh $HOME/screen.log
  • Terugkeren naar de screen-sessie en de op het scherm af te drukken gegevens die in het logbestand zullen worden geschreven. $ echo -e "\nchown $USER /root;"
  • Nadat het systeem is verbonden met de echte root, wordt het script /etc/profile.d/exploit.sh uitgevoerd, dat de eigenaar van de map /root wijzigt. $ ls -lhd /root drwxr-x— 5 user root 4.0K 30 dec 2020 .
  • Op dezelfde manier kunnen configuratiebestanden voor sudo worden aangemaakt of kunnen opdrachten aan het einde van systeemscripts worden toegevoegd.

Minder gevaarlijke kwetsbaarheden in screen:

  • CVE-2025-46802 — onderschepping van het TTY-apparaat in multi-user sessies (een gebruiker kan verzoeken om het apparaat /dev/pts/1 rechten crw-rw-rw- te geven). Het probleem doet zich voor in screen versies 4.x en 5.x.
  • CVE-2025-46803 — standaard rechten 0622 op het PTY-apparaat die schrijven door alle gebruikers mogelijk maken. Het probleem doet zich alleen voor in screen versie 5.0.
  • CVE-2025-46804 — informatielek over de aanwezigheid van bestanden en mappen in gesloten mappen (bij het opgeven van een map voor sockets, geeft de tool verschillende foutmeldingen die informatie geven over de aanwezigheid van bestanden en mappen met deze naam). Het probleem doet zich voor in screen versies 4.x en 5.x.
  • CVE-2025-46805 — raceconditie bij het verzenden van SIGCONT en SIGHUP signalen, wat leidt tot een denial-of-service. Het probleem doet zich voor in screen versies 4.x en 5.x.
  • Onjuist gebruik van de functie strncpy (vervangen van strcpy door strncpy zonder rekening te houden met het verschil in de behandeling van null-tekens '\0'), wat leidt tot een crash bij het uitvoeren van speciaal opgestelde opdrachten. Het probleem doet zich alleen voor in screen versie 5.0.

De kwetsbaarheden zijn ontdekt tijdens een audit van de codebasis van GNU screen, uitgevoerd door het team dat verantwoordelijk is voor de beveiliging van de SUSE Linux-distributie. Informatie over de kwetsbaarheid is op 7 februari naar de ontwikkelaars van screen gestuurd, maar binnen de gestelde termijn van 90 dagen konden ze geen oplossingen voor alle kwetsbaarheden voorbereiden, en de medewerkers van SUSE moesten sommige patches zelf maken. Volgens de onderzoekers die de audit uitvoerden, zijn de huidige beheerders van GNU screen niet goed genoeg bekend met de codebasis van het project en zijn ze niet in staat om de geconstateerde beveiligingsproblemen volledig te begrijpen.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster