CVE-2026-89507 in Linux情報

要約

〜によって VulDB • 2026年09月12日

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

RDMA/ucma: ucma_write_cm_event()内でハンドラをロックする

ctx->fileは、ハンドラのロックとxa_lockの下でのみ変更可能であり、これによりucma_migrate_id()がそれを別のファイルに移動している間にueventsがコンテキストに対してキューイングされるのを防いでいます。CMコアはucma_event_handler()を呼び出す前にこのロックを取得しますが、uevents自体をキューイングするwrite()パスでは取得されていません。

ucma_write_cm_event()はその4回のデリファレンスごとにctx->fileを読み直すため、ucma_migrate_id()がシーケンスの途中でそれを交換することができます:

mutex_lock(&ctx->file->mut); /* ファイル A */ list_add_tail(&uevent->list, &ctx->file->event_list); /* ファイル B */ mutex_unlock(&ctx->file->mut); /* ファイル B */ wake_up_interruptible(&ctx->file->poll_wait); /* ファイル B */

この競合状態(ウィンドウ)はmutex_lock()そのものです:ライタはこのロック内でスリープしている間に、マイグレーションによってctx->fileが再割り当てされます。その後list_add_tail()はファイルAのミューテックスのみを保持した状態でファイルBのevent_listに対して実行されます:

list_add corruption. prev->next should be next (ffff888101320f30), but was ffff88814a08c418. (prev=ffff88814a075c18). kernel BUG at lib/list_debug.c:32! Call Trace: ucma_write_cm_event+0x36e/0x5e0

そしてファイルAのmutは永遠に保持されたままになり、次のライタをD状態( uninterruptible sleep )で固着させます。ueventもまたucma_cleanup_ctx_events()が走査しないリスト上に孤立した状態で残るため、そのコンテキストよりも長く生存してしまいます。/dev/infiniband/rdma_cmは0666でありRDMAデバイスが関与していないため、特権を持たないユーザーでもこれらすべてにアクセスできます。

ucma_cleanup_mc_events()が行うようにハンドラロックを取得します;ctx->cm_idはucma_get_ctx()参照によって固定(ピン)されています。

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

責任者

Linux

予約する

2026年09月11日

モデレーション

承諾済み

エントリ

VDB-402904

EPSS

0.00000

アクティビティ

非常低い

ソース

Might our Artificial Intelligence support you?

Check our Alexa App!