Qtブログ(日本語)

セキュリティ勧告:Linux上のQLowEnergyControllerにバッファ終端を越えた読み取りとゼロによる除算のセキュリティ問題はQtに影響

作成者: Qt Group 日本オフィス|Jan 21, 2025 2:08:07 PM
本稿は「Security advisory: A read past the end of the buffer and division by zero security issue in QLowEnergyController on Linux impacts Qt」の抄訳です。
 

Linux上のQt BluetoothモジュールのQLowEnergyControllerに、バッファの終端を越えた読み取りとゼロによる除算の脆弱性が発見され、CVE ID CVE-2025-23050が割り当てられました。

影響を受けるバージョン:Qt 5.4.0から5.15.18、6.0.0から6.5.8、6.6.0から6.8.1。

影響:Linux上のQLowEnergyControllerには、BlueZ DBusとBluetooth Kernel APIバックエンドがあります。QLowEnergyControllerのBluetooth Kernel APIバックエンドを使用する場合、QtBluetoothはBluetooth L2CAPソケットを作成して外部のBluetooth Low Energyデバイスとの接続を確立します。その後、外部デバイスは不正なBluetooth ATTコマンドを送信して、バッファの読み取りエラーやゼロ除算エラーをトリガーすることができます。この問題は、セントラルおよびペリフェラルロールの両方に該当します。

セントラルロールのユースケースでは、システムの BlueZ ランタイムのバージョンが 5.42 より低い場合のみ、Bluetooth カーネル API バックエンドが使用されます。

ペリフェラルロールのユースケースでは、Bluetooth Kernel API バックエンドは Qt 6.7 より前のすべての Qt バージョンでデフォルトで使用されます。 Qt 6.7 以降を使用するデプロイメントでは、Bluez のバージョンが 5.56 より低い場合、または環境変数 QT_BLUETOOTH_USE_KERNEL_PERIPHERAL 経由で明示的にオプトインした場合にバックエンドがトリガーされます。

セントラルロールとして、不正なコマンドが処理される前に、ユーザーは攻撃対象の外部デバイスに明示的に接続する必要があります。

ペリフェラルロールとして、外部デバイスが接続できるように、QLowEnergyAdvertisingParameters::AdvIndモードで広告を開始する必要があります。

解決策

Qt 6.9.0、6.8.2、6.5.9、または5.15.19にアップグレード、又は以下のパッチを適用してください。

パッチ