JPCERTコーディネーションセンター(JPCERT/CC: Japan Computer Emergency Response Team Coordination Center)は5月9日、「JVNVU#92669710: Qt製Windowsアプリケーションにおける権限昇格の脆弱性」において、The Qt Companyが提供しているアプリケーションフレームワーク「Qt」によって開発されたWindowsアプリケーションに権限昇格の脆弱性が存在することを伝えた。この脆弱性を悪用されると、攻撃者によって対象のWindowsマシンにおいてQtアプリの権限で任意のコードを実行される危険性がある。
QtはWindowsやmacOS、Linuxをはじめとする多数のOSに対応したクロスプラットフォームのアプリケーション開発フレームワークである。今回報告された脆弱性は、Qtで作成されたWindowsアプリケーションにおいて、Qt開発ツールのインストールパスが「qt_prfxpath」の値としてハードコードされていることに起因するものだという。
Windowsシステムの一般ユーザーがこのqt_prfxpathが指しているディレクトリを作成して悪意のあるファイルを配置した場合、Qtアプリケーションはそのファイルを読み込んで実行してしまう。結果として、一般ユーザーがQtアプリに対して任意のコードを実行させることができる。
次のバージョンのQt開発環境およびデプロイツール「windeployqt」を使用して作成されたアプリケーションがこの脆弱性の影響を受ける。
- Qt 5.14より前のバージョン
- windeployqtのcommit:c2952ff8df1e18fe0120d8b29901b0b794afccc7以降を取り込んでいないバージョン
JPCERT/CCでは、この脆弱性の影響を回避するために、Qtを利用したWindowsアプリケーションの開発者に対し、次のいずれかの対策を実施することを推奨している。
- Qtをバージョン5.14以降にアップデートしてアプリケーションを作成し直す
- 最新のwindeployqtツール(commit:c2952ff8df1e18fe0120d8b29901b0b794afccc7以降を含むバージョン)を使ってアプリケーションを作成し直す
いずれの対策にしても、アプリケーションをビルドし直した上で再配布する必要がある。Qt製のWindowsアプリケーションを使用している場合は、開発元からのアナウンスに注意し、アップデートが提供された際は速やかに適用することが推奨される。