Linux KDE 4和5命令注入0day漏洞安全通告

发布时间 2019-08-08

漏洞编号和级别


CVE编号:暂无,危险级别:高危,CVSS分值:官方未评定


• 影响版本


受影响的版本


KDE Frameworks 5.60.0及更低版本


• 漏洞概述


安全研究员Dominik Penner披露Linux KDE中的一个尚未修复的0day,攻击者可通过诱使用户下载和解压缩恶意.desktop和.directory文件在用户的计算机上静默执行任意代码,甚至无需用户实际打开该文件。该漏洞影响了KDE版本4和5,几乎所有的Linux发行版都被波及。


KDE4/5易受KDesktopFile 类中一个命令注入漏洞的攻击。当实例化.desktop 或 .directory 文件时,它以不安全的方式通过 KConfigGruop::readEntry()函数使用 KConfigPrivate::expandString() 评估环境变量和 shell 扩展。通过一个特殊构造的.desktop文件,远程用户在文件管理器中下载并查看文件,或者将链接拖拽到文档或桌面上即可遭攻陷。


.desktop和.directory 文件用来配置应用和文件夹的显示方式。.desktop 文件用于在KDE目录中注册应用,而.directory 文件用于说明 KDE 应该如何显示文件夹。对于Windows 用户而言,.directory文件就类似于desktop.ini 文件。每份文件中都有各种字段,告知桌面环境如何显示目录或应用。其中一个字段是“Icon”,在.desktop 文件中它指定了KDE 应该在目录中展示的图标路径,而对于.directory 文件而言,它将指定在 Dolphin 查看文件夹时所使用的图标。


问题在于KDE允许使用shell扩展通过某个环境变量或执行命令的方式动态地生成这些字段的值。由于在Dolphin或从Desktop查看文件时,它们会被自动读取,因此它可导致攻击者构造恶意.desktop和.directory 文件夹,执行位于“Icon”字段中的命令。


• 漏洞验证


Bleeping Computer 在测试中发现非常容易地就能在易受攻击的机器上滥用该漏洞执行代码执行。测试人员创建了包含 .directory 文件的子文件夹的 ZIP 文件。这个目录文件的 Icon 字段中包含一个从服务器中下载 test.sh 脚本的命令并执行以启动 Kcalc。



用户下载test.zip文件后解压并打开,KDE 就会读取 .directory 文件并执行分配给 Icon 字段的命令。



Penner发布了漏洞利用代码:https://gist.githubusercontent.com/zeropwn/630832df151029cb8f22d5b6b9efaefb/raw/64aa3d30279acb207f787ce9c135eefd5e52643b/kde-kdesktopfile-command-injection.txt。


• 修复建议


研究人员在发布详细信息和PoC漏洞之前没有向KDE开发人员报告漏洞,KDE社区承认漏洞并向用户保证修复工作正在进行中。


Penner建议用户检查所有.desktop 或 .directory 文件并禁用任意动态条目。


• 参考链接


https://www.bleepingcomputer.com/news/security/zero-day-bug-in-kde-4-5-executes-commands-by-opening-a-folder/