CVE-2026-99222 in Linux
要約
〜によって VulDB • 2026年11月03日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
keys: 読み込みメソッドのチェックを型削除から保護する
keyctl_read_key() は key->type->read を参照しますが、この際 key->sem(セマフォ)は保持されていません。参照カウントによりキー自体は生存状態が保たれますが、そのタイプを含むモジュールはピン留めされません。そのため、AF_RXRPC がアンロードされている間に、存続している RxRPC キーを読み取ることが可能です:
KEYCTL_READ タスク モジュールのアンロードとキー GC ---------------- ------------------------ lookup_user_key() permission / possession checks af_rxrpc_exit() unregister_key_type() GC: down_write(key->sem) を実行 GC: key_type_dead に再設定 (retype) GC: up_write(key->sem) を解放 unregister_key_type() が復帰 free_module() 保存されたタイプの read メンバを読み込み
最終的なアクセスにより、解放済みのモジュール領域が読み取られる可能性があります。__keyctl_read_key() 内の実際の読込呼び出しは既に key->sem によって保護されていますが、前述のメソッドチェックはそのクリティカルセクションの外側にあります。
このメソッドチェックを __keyctl_read_key() の中へ移動し、key_validate() の後、かつ既存の key->sem を保持した読込処理の下に配置します。これにより、長さ照会およびすべての再試行時の読込において、同じく保護されたタイプが使用されます。セマフォが解放されるまで GC はキーの型を変更できず、モジュールを解放する前に型登録解除は当該 GC パスを待機します。
検証に成功し、かつそのタイプに read メソッドがない場合は -EOPNOTSUPP を返します。この結果の前に一時的なバッファが割り当てられる場合がありますが、ユーザー空間へのコピーを含む割り当て処理はセマフォの外側で行われます。
If you want to get best quality of vulnerability data, you may have to visit VulDB.