CVE-2026-99224 in Linux情報

要約

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

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

keys: キーの説明中に型名を保護する

keyctl_describe_key()は、kasprintf()がその名前を使用し終えるまで、キー型の名前が生きている状態(参照カウントを保つ)にする必要があります。保持されたキーの参照によりキーとその説明は生存しますが、その型を提供しているモジュールはピン留めされません。名前は key->sem を保持せずに kasprintf() に渡されます。

kvasprintf() は2回のフォーマット処理で保存された名前ポインタを使用し、その間に GFP_KERNEL による割り当てが行われます。AF_RXRPC=m の場合、型が廃止される前に View アクセス権限を付与するタスクは、以下の順序で特権モジュールのアンロードと重なる可能性があります:

1. KEYCTL_DESCRIBE がキーを検索し、kasprintf() の引数に key->type->name を保存して、最初のフォーマット処理を完了します。 2. フォーマッターが2回目の処理の前に遅延している間、af_rxrpc_exit() は unregister_key_type() を呼び出し、型をレジストリから削除して key_gc_keytype() の待機に入ります。 3. コレクターは書き込み用に key->sem を取得し、保持されたキーの型を key_type_dead に再設定して廃止処理を完了します。登録解除とモジュール終了が戻り、free_module() によって型と名前が解放されます。 4. フォーマッターは2回目の処理を再開し、解放されたモジュールストレージから保存された名前を読み取りますが、これにより string() でフォールトが発生する可能性があります。

kasprintf() の間中、読み込み用に key->sem を保持します。こうすることで、両方のフォーマット処理が完了するまで、コレクターはキーの型を変更したり廃止を完了させたりできなくなります。もし廃止側が先にロックを獲得した場合、フォーマッターはコアの key_type_dead 名を使用します。kasprintf() の直後(割り当て失敗時を含む)、ユーザー空間へのコピーの前にセマフォを解放してください。

以下のような Oopsレポートが発生しました:

BUG: unable to handle page fault for address: fffffbfff8054794 #PF: supervisor read access in kernel mode #PF: error_code(0x0000) - not-present page RIP: 0010:string+0x23f/0x470 Call Trace: vsnprintf+0x330/0x1110

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

責任者

Linux

予約する

2026年09月25日

モデレーション

承諾済み

エントリ

VDB-429914

EPSS

0.00000

アクティビティ

非常低い

ソース

Do you need the next level of professionalism?

Upgrade your account now!