KDE Konsole haavatavus, mis võimaldab koodi käivitada, kui avada leht brauseris.

KDE arendatavast projektist leiti terminali emulaatoris Konsole haavatavus (CVE-2025-49091), mis võimaldab koodi süsteemis täitmist, kui brauseris avatakse spetsiaalselt kujundatud leht.

KDE-s registreeritakse Konsole jaoks vaikimisi teenus KTelnetService (ktelnetservice6.desktop), mis ühendab telnet://, rlogin:// ja ssh:// URL-skeemide töötlejate. Nende skeemide töötlemisel terminali emulaatoris käivitatakse telnet, rlogin ja ssh utiliidid, millele edastatakse viidatud link.

Haavatavus tuleneb sellest, et juhul, kui süsteemis ei ole installitud telnet, rlogin või ssh utiliiti, käivitas Konsole vastava URL-i töötlejat kutsudes shelli interpreteeri bash. Näiteks, kui telnet on puudu ja brauseris avatakse link «telnet:///proc/self/cwd/Downloads/evil», siis käivitatakse Konsole'is «/bin/bash /proc/self/cwd/Downloads/evil». Sarnast rünnakut saab teha ka rlogin:// ja ssh:// töötlejate vastu, kui süsteemis puuduvad rlogin ja ssh utiliidid.

Haavatavuste kasutamine toob kaasa asjaolu, et uusimates Firefoxi ja Chrome'i versioonides salvestatakse automaatselt allalaadimise käivitatud failid vaikeseadetega, esitamata kasutajale küsimust ning kuvatakse vaid teade salvestatud failist. Firefoxis võib käitumise välja lülitada, muutes seadistust "Always ask you where to save files" konfiguratsiooni lehel "General > Files and Applications". Üldiselt salvestatakse failid katalooge ~/Downloads, kuhu, teadmata praeguse kasutaja nime, võib viidata failiteega "/proc/self/cwd/Downloads/".

Allpool on näidis JavaScript-i koodist, mille täitmisel brauseris KDE keskkondades koos Konsole'iga täidetakse kasutaja käsud „echo „Hello world”; touch /tmp/foobar” (näites on need kodeeritud stringis „data:;base64,ZWNobyAiIkhlbGxvIHdvcmxkIiB0b3VjaCAvdG1wL2ZvYm9hcg==”). Ettepanekut kood loob lingi integreeritud andmetega, simuleerib sellele lingile klikkimist ja suunab kasutaja URL-ile „telnet://…”. Chrome'is töötamiseks tuleb lingi failinime muuta evil.txt-ks, kuna Chrome lisab automaatselt tegumile laiendi txt. <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>

Firefoxis ja Chrome'is, kui proovite minna aadressile "telnet://", kuvatakse vaikimisi kasutajale kinnitusküsimus. Kui kasutaja nõustub, käivitab KTelnetService käsu: /usr/bin/konsole —noclose -e telnet /proc/self/cwd/Downloads/evil

Kui süsteemis ei ole telnet utiliiti, siis Konsole kukub tagasi bash'i käivitamise peale telnet'i asemel, edastades algselt käskluses nimetatud argumendi.

Probleem on lahendatud versioonis Konsole 25.04.2, mis kuulub KDE Gear 25.04.2 uuendusse. Haavatavuse kõrvaldamise jälgimiseks jaotustes saab jälgida järgmisi lehti: Debian, Ubuntu, Fedora, SUSE/openSUSE, RHEL, Arch, FreeBSD. Haavatavuse blokeerimiseks saab kasutada telnet, rlogin ja ssh utiliite või eemaldada fail /usr/share/applications/ktelnetservice6.desktop.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster