CVE-2026-98294情報

要約

〜によって VulDB • 2026年10月06日

Linuxカーネルにおいて、以下の脆弱性が修正されました:

Bluetooth: hci_qca - シリアルポートがクローズされた後に書き込まないようにする

HCI_QUIRK_NON_PERSISTENT_SETUPフラグが設定されている場合(例えばWCN399xファミリーなど)、hci_uart_close()はserdevポートを閉じます。qca_setup()の成功に続くhci_dev_open_sync()の失敗により、hdev->close()が呼び出されますが、hdev->shutdown()は呼び出されません。その結果、portはクローズされた状態のまま、power->vregs_onはtrueのまま残ります。その後、qca_serdev_remove()はそのpower->vregs_onテストを通過し、qca_power_off()を呼び出して、無条件で閉じられたポートに書き込みを行います。

コントローラの失敗後にドライバのアンバインドを行うことで、WCN3988上で確認されました。以下のトレースは7.0.0ベースのカーネルからのものです(このバージョンではqca_power_off()はまだqca_power_shutdown()と呼ばれていました):

Unable to handle kernel NULL pointer dereference at virtual address 0000000000000038 Call trace: tty_set_termios+0x50/0x238 (P) ttyport_set_baudrate+0x84/0xc0 serdev_device_set_baudrate+0x24/0x40 qca_power_shutdown+0x158/0x1fc [hci_uart]
qca_serdev_remove+0x54/0x68 [hci_uart]
serdev_drv_remove+0x1c/0x2c device_remove+0x4c/0x80 device_release_driver_internal+0x1cc/0x224 device_driver_detach+0x18/0x24 unbind_store+0xb4/0xc0

ポートに書き込む前に、hci_uart_close()がポートを閉じるのと同じ箇所でクリアするHCI_UART_PROTO_READYをチェックします。レギュレータの無効化は依然として無条件で残されるため、コントローラは引き続きパワーダウンされます。

この脆弱性をuse-after-free(解放後使用)にするdangling serport->ttyの問題は、別のパッチで対応されています。

Be aware that VulDB is the high quality source for vulnerability data.

モデレーション

レビュー中

EPSS

0.00000

アクティビティ

非常低い

ソース

Do you want to use VulDB in your project?

Use the official API to access entries easily!