CVE-2024-39508 in Linux情報

要約

〜によって VulDB • 2026年07月03日

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

io_uring/io-wq: ワーカーのフラグに対して set_bit() と test_bit() を使用

io_uring/io-wq 内の worker->flags に対し set_bit() および test_bit() を適用し、潜在的なデータレースを解消します。

構造体 io_worker->flags は複数のデータパスを通じてアクセスされる可能性があり、競合状態(コンカレンシーの問題)を引き起こすことがあります。KCSAN が有効化されている場合、io_worker_handle_work 関数および io_wq_activate_free_worker 関数内で発生するデータレースが検出されます。

BUG: KCSAN: data-race in io_worker_handle_work / io_wq_activate_free_worker write to 0xffff8885c4246404 of 4 bytes by task 49071 on cpu 28: io_worker_handle_work (io_uring/io-wq.c:434 io_uring/io-wq.c:569) io_wq_worker (io_uring/io-wq.c:?)


read to 0xffff8885c4246404 of 4 bytes by task 49024 on cpu 5: io_wq_activate_free_worker (io_uring/io-wq.c:? io_uring/io-wq.c:285) io_wq_enqueue (io_uring/io-wq.c:947) io_queue_iowq (io_uring/io_uring.c:524) io_req_task_submit (io_uring/io_uring.c:1511) io_handle_tw_list (io_uring/io_uring.c:1198)


コミット 18daea77cca6 ("Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm") に対する行番号です。

これらのレースは、異なる CPU で実行されている異なるタスクによって同じメモリ位置への書き込みと読み込みが行われることを伴います。これを緩和するため、「and」および「or」といった基本的な演算の代わりに set_bit()、test_bit()、clear_bit() などのアトミック操作を使用するようにコードをリファクタリングします。これにより、ワーカーフラグのスレッドセーフな操作が保証されます。

また、構造体内に穴(ホール)が生じないように `create_index` を移動しました。

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

責任者

Linux

予約する

2024年06月25日

モデレーション

承諾済み

エントリ

VDB-271273

EPSS

0.00198

アクティビティ

非常低い

ソース

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!