KDE 刪除Shell 命令支持修復了一個0day 漏洞
之前報導過KDE 中存在一個很容易被利用的 0day 漏洞,現在KDE 項目刪除了對 Shell 命令的支持來修復該問題。此漏洞存在於KDE v4 與v5 版本中,該漏洞使得嵌入在.desktop 和.directory 文件中的命令在打開文件夾或者將壓縮文件夾提取到桌面時即可執行,目前幾乎所有Linux 發行版都在使用易受攻擊的KDE 版本。
.desktop 和.directory 文件是符合freedesktop.org 標準的桌面環境使用的配置文件,它們用於配置應用和文件夾的顯示方式。.desktop 文件用於在KDE 菜單中註冊應用程序,而.directory 文件用於描述KDE 應如何顯示文件夾。
問題主要出在KDE 允許Shell 擴展通過環境變量或執行命令動態生成字段的值,它們使用與freedesktop 規範相同的語法,但是因為它們也允許Shell 擴展(freedesktop 不允許這樣做),所以這是可利用的。
如開頭gif所示,BleepingComputer做了個簡單的測試,可以很直觀地了解該漏洞的執行過程。該測試特別簡單,測試者創建了一個ZIP文件,其中包含了一個帶有.directory文件的子文件夾,在該配置文件的icon字段中,嵌入了一個啟動並執行kcalc計算器的test.sh腳本。
為了修復該漏洞,KDE項目刪除了對KConfig條目中的Shell命令的支持,但繼續允許支持環境變量擴展。
仔細考慮後,KConfig 條目中支持Shell 命令的整個功能已被刪除,因為我們找不到它的實際用例。如果您確實已使用該功能,請與我們聯繫,以便我們評估是否可以提供安全的解決方案。
請注意,[$e] 對環境變量擴展仍然有用。
KDE 用戶可以通過將KConfig 更新到5.61.0 或更高版本來修復此漏洞,或者直接打上補丁:
https://cgit.kde.org/kconfig.git/commit/?id=5d3e71b1d2ecd2cb2f910036e614ffdfc895aa22