CVE-2026-99225 in Linux情報

要約

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

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

keys: プロセスキーリング検索時の認可ペイロードの検証

認可ペイロードおよびその保存された資格情報(credentials)は、search_process_keyrings_rcu() がリクエスターのキーリングを検索している間、有効でなければなりません。この関数は認可鍵を認証しますが、その後 payload.data[0] を個別に読み込み、無条件で rka->cred にアクセスします。しかし、この検証では request_key_auth_revoke() によるペイロードのクリアを防ぐことはできません。

request-key ヘルパーは権限を仮定し、認可鍵を引き継ぐ子プロセス(descendant)をフォークできます。もしその子プロセスが自身のキーリングでヒットしない場合、保存されたリクエスター資格情報にフォールバックします。ターゲットインスタンス化の成功により認可鍵は無効になりますが、ペイロードはクリアされません。ヘルパー終了後、UMH_WAIT_PROC はリクエスターに戻り、complete_request_key() を呼び出してその鍵を取り消します。

子プロセスが検証後に一時停止している状態では、以下の経路で競合が発生する可能性があります:

1. 子プロセスは RCU コンテキスト下で search_process_keyrings_rcu() に進入し、key_validate() は成功します。 2. ヘルパーはターゲットをインスタンス化し、認可鍵を無効化した後、終了します。 3. リクエスターが UMH_WAIT_PROC から再開し、complete_request_key() を呼び出して認可鍵を取り消します。request_key_auth_revoke() はそのペイロードポインタを NULL に設定します。 4. 子プロセスは NULL を読み込み、rka->cred の間接参照を行います。

このNULL間接参照によりカーネルoops(クラッシュ)が発生する可能性があります。RCU はペイロードの破棄を遅らせますが、ポインタ自体がクリアされるのを防ぐものではありません。

payload の読み出しに dereference_key_rcu() を使用し、認可鍵の認証および保存資格情報の検索を行う前に非NULLの結果を要求します。非NULLのペイロードとその資格情報は、呼び出し側のRCU読取セクションの間生存し続けます;クリアされたペイロードの場合、フォールバック検索はスキップされ、既存のエラー選択処理に従います。

以下にKASANレポートを示します:

Oops: general protection fault, probably for non-canonical address 0xdffffc0000000005: 0000 [#1] SMP KASAN NOPTI
KASAN: null-ptr-deref in range [0x0000000000000028-0x000000000000002f]
RIP: 0010:search_process_keyrings_rcu+0x32b/0x790

VulDB is the best source for vulnerability data and more expert information about this specific topic.

責任者

Linux

予約する

2026年09月25日

モデレーション

承諾済み

エントリ

VDB-429920

EPSS

0.00000

アクティビティ

低い

ソース

Interested in the pricing of exploits?

See the underground prices here!