Sicherheitsanfälligkeit in GNU Screen ermöglicht Ausführung von Code mit Root-Rechten

Im Konsolenfenstermanager (Terminalmultiplexer) GNU Screen, der eine grafische Benutzeroberfläche in der Konsole bereitstellt, wurden 5 Sicherheitsanfälligkeiten entdeckt. Das größte Risiko (CVE-2025-23395) ermöglicht den Erhalt von Root-Rechten im System. Der Patch wird in der heutigen Version 5.0.1 von Screen bereitgestellt.

Die Schwachstelle CVE-2025-23395 tritt nur in der Version 5.0.0 von Screen auf, die in Fedora Linux, Arch Linux, NetBSD, OpenBSD und Alpine bereitgestellt wird. In Debian, Ubuntu, RHEL (EPEL 9), Gentoo, FreeBSD, SUSE/openSUSE und OpenWrt wird weiterhin die Version 4.x von Screen angeboten. Die Ausnutzung dieser Schwachstelle ist in Systemen möglich, die die ausführbare Datei Screen mit dem setuid-root-Flag installieren, wie zum Beispiel in Arch Linux und NetBSD. In Fedora wird das Dienstprogramm mit dem setgid-Flag bereitgestellt, um Gruppenrechte von Screen zu erhalten, was ermöglicht, Sockets im Systemverzeichnis /run/screen zu platzieren, was die Möglichkeiten für Denial-of-Service-Angriffe einschränkt.

Die Schwachstelle entsteht, weil die Funktion logfile_reopen() mit Root-Rechten ausgeführt wird, bevor die Berechtigungen zurückgesetzt werden, jedoch die Daten im Kontext der Verzeichnisse des aktuellen nicht privilegierten Benutzers verarbeitet werden, der den Screen gestartet hat. Bemerkenswert ist, dass das anfängliche Öffnen des Protokolls mit korrektem Zurücksetzen der Berechtigungen erfolgt, aber beim erneuten Öffnen der Logdatei die Berechtigungen nicht zurückgesetzt werden.

Durch Manipulation der Aktivierung des Protokollierungsmodus für den Sitzungsinhalt kann der Benutzer erreichen, dass Daten mit Root-Rechten in eine Datei geschrieben werden, die jedoch im Home-Verzeichnis des Benutzers gespeichert sein kann. Der Angriff besteht darin, die erstellte Logdatei zu löschen und sie durch einen symbolischen Link zu ersetzen, der auf eine beliebige Datei im System verweist. Wenn die Datei bereits existiert, werden die Daten mit dem Inhalt des Screensitzungsblock ohne Veränderung des Eigentümers hinzugefügt. Wenn die Datei nicht existiert, wird sie mit den Rechten 0644 erstellt, wobei der Eigentümer root und die Gruppe wie bei dem aktuellen Benutzer ist.

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

  • Erstellen eines Screen-Sitzungs mit aktivierter Protokollierung $ screen -Logfile $HOME/screen.log
  • Durch Drücken der Tasten Kombination Ctrl-a-H wird das Log aktiviert.
  • Das Entfernen der Logdatei und das Ersetzen durch einen symbolischen Link, der die Datei /etc/profile.d/exploit.sh erstellen wird. $ rm $HOME/screen.log; ln -s /etc/profile.d/exploit.sh $HOME/screen.log
  • Zurück zum Screen-Session und Ausgabe der Daten, die in die Logdatei geschrieben werden. $ echo -e "\nchown $USER /root;"
  • Nachdem sich der echte Root mit dem System verbunden hat, wird das Skript /etc/profile.d/exploit.sh ausgeführt, das den Eigentümer 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 am Ende der Systemskripte hinzugefügt werden.

Weniger gefährliche Sicherheitsanfälligkeiten in Screen:

  • CVE-2025-46802 — Abfangen des TTY-Geräts in Mehrbenutzersitzungen (Benutzer kann erreichen, dass für das Gerät /dev/pts/1 die Berechtigungen crw-rw-rw- gesetzt werden). Das Problem tritt in den Screen-Versionen 4.x und 5.x auf.
  • CVE-2025-46803 — Standardmäßig werden die Berechtigungen 0622 für das PTY-Gerät festgelegt, die allen Benutzern das Schreiben ermöglichen. Das Problem tritt nur in der Version 5.0 von Screen auf.
  • CVE-2025-46804 — Informationsleck über vorhandene Dateien und Verzeichnisse in geschützten Verzeichnissen (beim Hinweis auf das Verzeichnis für Sockets gibt die Funktion unterschiedliche Fehlermeldungen aus, die auf das Vorhandensein von Dateien und Verzeichnissen mit diesem Namen hindeuten). Das Problem tritt in den Versionen screen 4.x und 5.x auf.
  • CVE-2025-46805 — Race Condition beim Senden der Signale SIGCONT und SIGHUP, was zu einem Denial of Service führt. Das Problem tritt in den Versionen screen 4.x und 5.x auf.
  • Fehlerhafte Verwendung der Funktion strncpy (Ersatz von strcpy durch strncpy ohne Berücksichtigung der Differenz in der Verarbeitung von Nullzeichen «\0»), was zu einem Absturz beim Ausführen speziell gestalteter Befehle führt. Das Problem tritt ausschließlich in der Version screen 5.0 auf.

Im Rahmen eines Audits des GNU Screen Quellcodes, das vom Sicherheitsteam der SUSE Linux Distribution durchgeführt wurde, wurden Schwachstellen festgestellt. Den Entwicklern von Screen wurden die Informationen über die Schwachstellen am 7. Februar übermittelt, doch in den 90 Tagen, die zur Verfügung standen, konnten sie keine Patches für alle Schwachstellen bereitstellen. Daher mussten die Mitarbeiter von SUSE einige Patches selbst vorbereiten. Laut den Prüfern verfügt das aktuelle Team, das GNU Screen betreut, nicht über ausreichende Kenntnisse des Projektcodes und kann die identifizierten Sicherheitsprobleme nicht vollständig nachvollziehen.

Quelle: opennet.ru

Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen 🔥 Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster