1. 程式人生 > >Qt5 GUI 開發的應用易受遠端程式碼執行漏洞的影響

Qt5 GUI 開發的應用易受遠端程式碼執行漏洞的影響

開發十年,就只剩下這套架構體系了! >>>   

外媒 Bleepingcomputer 報導稱使用 Qt5 GUI 框架開發的應用程式容易面臨遠端程式碼執行漏洞。攻擊者通過一個鮮為人知的命令列引數配置自定義協議處理程式,就可利用這個漏洞。

許多開發者並不知道當使用 Qt5 框架時,它還添加了可用於修改框架工作方式的命令列引數,例如要顯示的視窗標題、視窗大小,甚至是圖示。這些命令列引數會被傳遞給初始化 Qt 框架的函式,然後在其中對它們進行解析。

上文所說的鮮為人知的命令列引數是 platformpluginpath 命令,用於指定從哪個資料夾載入 Qt5 外掛,可以是本地資料夾,或者是遠端 UNC URL。

當將此引數提供給程式時,程式將使用已輸入的路徑載入程式的 Qt 外掛,這些外掛是由框架載入以擴充套件其功能的特製 DLL 程式

這意味著,如果攻擊者在遠端 UNC 上託管惡意 DLL 並且可以使用 platformpluginpath 引數啟動程式,則他們可以遠端載入 DLL 並執行它,從而進行遠端程式碼執行。

不過由上面也能看出,攻擊者要發起這樣的攻擊需要具備三個要素:

  1. 尋找一個基於 Qt5 框架的 GUI 應用程式
  2. 載入 Qt5 外掛
  3. 註冊自定義的 URI 處理程式

當然這不是說我們可以因此放鬆警惕,為了緩解這種型別的攻擊,應用程式需要清理命令列引數,