SicherheitsanfĂ€lligkeit in GNU screen, die die AusfĂŒhrung von Code mit Root-Rechten ermöglicht

Im Konsolenfenstermanager (Terminalmultiplexer) GNU Screen, der eine Multi-Window-OberflÀche in der Konsole bereitstellt, wurden 5 SicherheitsanfÀlligkeiten festgestellt. Das gefÀhrlichste Problem (CVE-2025-23395) erlaubt es, Root-Rechte im System zu erlangen. Die Korrektur ist in die heutige Version von Screen 5.0.1 integriert.

Die SicherheitsanfĂ€lligkeit CVE-2025-23395 tritt nur in der Version Screen 5.0.0 auf, die in Fedora Linux, Arch Linux, NetBSD, OpenBSD und Alpine geliefert wird. In Debian, Ubuntu, RHEL (EPEL 9), Gentoo, FreeBSD, SUSE/openSUSE und OpenWrt wird weiterhin die Version Screen 4.x ausgeliefert. Die Ausnutzung der SicherheitsanfĂ€lligkeit ist in Systemen möglich, die die ausfĂŒhrbare Datei Screen mit dem setuid root-Flag installieren, wie z.B. in Arch Linux und NetBSD. In Fedora wird das Dienstprogramm mit dem setgid-Flag installiert, um die Gruppenrechte von Screen zu erhalten, was erlaubt, Sockets im Systemverzeichnis /run/screen abzulegen und somit die Möglichkeiten eines Denial-of-Service-Angriffs einschrĂ€nkt.

Die SicherheitsanfĂ€lligkeit wird verursacht, weil die Funktion logfile_reopen() mit Root-Rechten ausgefĂŒhrt wird, bevor die Privilegien zurĂŒckgesetzt werden, aber Daten im Kontext der Verzeichnisse des aktuellen nicht privilegierten Benutzers verarbeitet werden, der Screen gestartet hat. Bemerkenswert ist, dass das anfĂ€ngliche Öffnen des Logs mit korrektem PrivilegienrĂŒcksetzen erfolgt, aber beim erneuten Öffnen der Logdatei erfolgt kein PrivilegienrĂŒcksetzen.

Durch Manipulationen zur Aktivierung des Protokollierungsmodus des Sitzung Inhalts kann der Benutzer erreichen, dass Daten in einer Datei mit Root-Rechten gespeichert werden, wĂ€hrend die Datei selbst im Home-Verzeichnis des Benutzers abgelegt werden kann. Der Angriff besteht darin, die erzeugte Logdatei zu löschen und sie durch einen symbolischen Link zu ersetzen, der auf irgendeine Datei im System verweist. Wenn die Datei bereits existiert, werden die Daten mit dem Bildschirminhalt der Screen-Sitzung hinzugefĂŒgt, ohne den EigentĂŒmer zu Ă€ndern. Wenn die Datei nicht existiert, wird sie mit den Rechten 0644, EigentĂŒmer root und Gruppe des aktuellen Benutzers erstellt.

Algorithmen des Angriffs, der die Datei /etc/profile.d/exploit.sh mit dem Befehl „chown $USER /root“ erstellt:

  • Erstellen einer Screen-Sitzung mit aktivierter Protokollierung $ screen -Logfile $HOME/screen.log
  • DrĂŒcken der Tastenkombination Ctrl-a-H, um die Protokollierung zu aktivieren.
  • Löschen der Logdatei und Ersetzen durch einen symbolischen Link, der zur Erstellung der Datei /etc/profile.d/exploit.sh fĂŒhrt $ rm $HOME/screen.log; ln -s /etc/profile.d/exploit.sh $HOME/screen.log
  • ZurĂŒckkehren zur Screen-Sitzung und Ausgeben von Daten auf dem Bildschirm, die in der Logdatei gespeichert werden sollen. $ echo -e "\nchown $USER /root;"
  • Nachdem das echte Root-System verbunden ist, wird das Skript /etc/profile.d/exploit.sh gestartet, das den Besitzer des Verzeichnisses /root Ă€ndert. $ ls -lhd /root drwxr-x— 5 user root 4.0K 30. Dez 2020 .
  • Ähnlich können Konfigurationsdateien fĂŒr sudo erstellt oder Befehle ans Ende der Systemskripte hinzugefĂŒgt werden.

Weniger gefÀhrliche Schwachstellen in screen:

  • CVE-2025-46802 — Abfangen des TTY-GerĂ€ts in Mehrbenutzersitzungen (der Benutzer kann das Zugriffsrecht crw-rw-rw- fĂŒr das GerĂ€t /dev/pts/1 erlangen). Das Problem tritt in den Versionen screen 4.x und 5.x auf.
  • CVE-2025-46803 — StandardmĂ€ĂŸig werden die Berechtigungen 0622 fĂŒr das PTY-GerĂ€t gesetzt, die allen Benutzern Schreibzugriff gewĂ€hren. Das Problem tritt nur in der Version screen 5.0 auf.
  • CVE-2025-46804 — Informationsleck ĂŒber das Vorhandensein von Dateien und Verzeichnissen in geschĂŒtzten Verzeichnissen (bei Angabe eines Verzeichnisses fĂŒr Sockets, unter Verwendung der Umgebungsvariable SCREENDIR, gibt das Tool unterschiedliche Fehlermeldungen aus, die Informationen ĂŒber die Existenz von Dateien und Verzeichnissen mit diesem Namen liefern). Das Problem tritt in den Versionen screen 4.x und 5.x auf.
  • CVE-2025-46805 — Rennenzustand beim Senden der Signale SIGCONT und SIGHUP, was zu einem Dienstverweigerung fĂŒhrt. Das Problem tritt in den Versionen screen 4.x und 5.x auf.
  • Falsche Verwendung der Funktion strncpy (das Ersetzen von strcpy durch strncpy ohne BerĂŒcksichtigung der Unterschiede in der Verarbeitung von Nullzeichen „\0“), was zu einem Absturz bei der AusfĂŒhrung speziell gestalteter Befehle fĂŒhrt. Das Problem tritt nur in der Version screen 5.0 auf.

Die Schwachstellen wurden wĂ€hrend einer SicherheitsprĂŒfung des GNU screen Codebase durch das Team, das fĂŒr die Sicherheit der SUSE Linux-Distribution verantwortlich ist, entdeckt. Den Entwicklern von screen wurden die Schwachstellen am 7. Februar mitgeteilt, aber innerhalb der vorgesehenen 90 Tage konnten sie keine Patches fĂŒr alle Schwachstellen vorbereiten, sodass einige Patches von den Mitarbeitern von SUSE selbst erstellt werden mussten. Die Forscher, die die PrĂŒfung durchfĂŒhrten, sind der Ansicht, dass die derzeitigen Betreuer von GNU screen nicht ausreichend mit dem Code des Projekts vertraut sind und nicht in der Lage sind, die identifizierten Sicherheitsprobleme vollstĂ€ndig zu verstehen.

Quelle: opennet.ru

60GB SSD 8Gb DDR4