信息來源:hackernews
外媒 Bleepingcomputer 報導(dǎo)稱使用 Qt5 GUI 框架開發(fā)的應(yīng)用程序容易面臨遠程代碼執(zhí)行漏洞。攻擊者通過一個鮮為人知的命令行參數(shù)配置自定義協(xié)議處理程序,就可利用這個漏洞。
許多開發(fā)者并不知道當(dāng)使用 Qt5 框架時,它還添加了可用于修改框架工作方式的命令行參數(shù),例如要顯示的窗口標(biāo)題、窗口大小,甚至是圖標(biāo)。這些命令行參數(shù)會被傳遞給初始化 Qt 框架的函數(shù),然后在其中對它們進行解析。
上文所說的鮮為人知的命令行參數(shù)是 platformpluginpath 命令,用于指定從哪個文件夾加載 Qt5 插件,可以是本地文件夾,或者是遠程 UNC URL。
當(dāng)將此參數(shù)提供給程序時,程序?qū)⑹褂靡演斎氲穆窂郊虞d程序的 Qt 插件,這些插件是由框架加載以擴展其功能的特制 DLL 程序。
這意味著,如果攻擊者在遠程 UNC 上托管惡意 DLL 并且可以使用 platformpluginpath 參數(shù)啟動程序,則他們可以遠程加載 DLL 并執(zhí)行它,從而進行遠程代碼執(zhí)行。
不過由上面也能看出,攻擊者要發(fā)起這樣的攻擊需要具備三個要素:
-
尋找一個基于 Qt5 框架的 GUI 應(yīng)用程序
-
加載 Qt5 插件
-
注冊自定義的 URI 處理程序
當(dāng)然這不是說我們可以因此放松警惕,為了緩解這種類型的攻擊,應(yīng)用程序需要清理命令行參數(shù),以避免遠程共享。