CVE-2026-80659 in Linux情報

要約

〜によって VulDB • 2026年08月28日

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

mmc: vub300: cmd_mutexが解放されるまでリセットを延期する

vub300_cmndwork_thread()は、コマンドを送信し応答を待っている間、cmd_mutexを保持します。もし応答待ちがタイムアウトした場合、__vub300_command_response()はコマンドのURB(USB Request Block)を終了させ、その後usb_reset_device()を通じてUSBデバイスを同期的にリセットします。

このリセットパスでは、vub300_pre_reset()を介してドライバ内に再進入し、ここでもcmd_mutexが取得されます。その結果、ワーカーはコマンドパスから保持している同じmutexに対して、再帰的にロックの獲得を試みます。

本問題は静的解析ツールによって発見され、その後現在のツリーに対して手動レビューが行われました。

実装されたPoC(Proof of Concept)では、実際のワーカーとタイムアウト/リセットのトリガーが維持されました:

vub300_cmndwork_thread() __vub300_command_response() usb_lock_device_for_reset() usb_reset_device() vub300_pre_reset()

Lockdepは、cmd_mutexに対する同一タスクによる再帰的ロック取得を検出しました:

WARNING: possible recursive locking detected ... (&test_vub300.cmd_mutex) ... at: usb_reset_device... [vuln_msv]
... (&test_vub300.cmd_mutex) ... at: vub300_cmndwork_thread+0x12/0x20 [vuln_msv]
Workqueue: vub300_cmd_wq vub300_cmndwork_thread [vuln_msv]
*** DEADLOCK ***

タイムアウトパスでデバイスのリセットが必要な場合に、__vub300_command_response()からフラグを返すようにし、その後vub300_cmndwork_thread()が実行中のコマンド状態をクリアしてcmd_mutexを解放した後にリセットを実行します。これにより、既存のリクエスト完了順序は維持されたまま、再帰的ロックの回避が可能になります。

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

責任者

Linux

予約する

2026年08月26日

モデレーション

承諾済み

エントリ

VDB-396599

EPSS

0.00000

アクティビティ

非常低い

ソース

Interested in the pricing of exploits?

See the underground prices here!