JVNVU#92669710
Qt製Windowsアプリケーションにおける権限昇格の脆弱性
The Qt Companyが提供するQtを使って作成されたWindowsアプリケーションには、qt_prfxpath
値のハードコーディングに起因する権限昇格の脆弱性が存在します。
以下のQt開発環境およびデプロイツールwindeployqt
を使用して作成されたアプリケーション
- Qt 5.14より前のバージョン
- windeployqt、commit:c2952ff8df1e18fe0120d8b29901b0b794afccc7以降を取り込んでいないバージョン
The Qt Companyが提供するQtはマルチプラットフォーム向けアプリケーションフレームワークです。 Qtで作成されたWindowsアプリケーションでは、 Qt開発ツールのインストールパスがqt_prfxpath
にハードコードされており、当該アプリケーションはこれらのパスから必要なモジュールをロードしようとします。
qt_prfxpath
が指しているディレクトリは、例えばQtのWindowsインストーラーの初期設定ではC:\Qt\
のサブディレクトリとなっており、Windowsシステムの一般ユーザがこのディレクトリを作成して悪意あるファイルを置き、Qtアプリケーションに読み込ませることが可能となっている場合があります。
Qtで作成されたWindowsアプリケーションが特権を使用して実行される場合、Windowsシステムの一般ユーザがqt_prfxpath
が指しているディレクトリに悪意をもったファイルを用意しておくことで、当該Qtアプリの権限で任意のコードを実行させる可能性があります.
Qtを利用したWindowsアプリケーションの開発者は、以下のどちらかを実施してください。
Qtをアップデートしてアプリケーションを作成し直す
The Qt Companyが提供する情報をもとに、Qt開発環境を最新版へアップデートし、アプリケーションを作成し直してください。
Qtプロジェクトによると、Qt 5.14 以降では本脆弱性の対策が行われているとのことです。
最新のwindeployqtツールを使ってアプリケーションを作成し直す
Qt開発環境を最新版に更新できない場合でも、アプリケーションのパッケージ化を行うツールwindeployqt
の
commit:c2952ff8df1e18fe0120d8b29901b0b794afccc7以降を含む最新版を使用することで、Qt5Core.dll
に含まれるqt_prfxpath
の値を削除できるとのことです。
-
CERT/CC Vulnerability Note VU#411271
Qt allows for privilege escalation due to hard-coding of qt_prfxpath value