JVNDB-2026-025989 | |
LinuxのLinux KernelにおけるNULL ポインタデリファレンスに関する脆弱性 | |
| 概要 | |
Linuxカーネルにおいて、以下の脆弱性が修正されました。nfsd: setlease失敗時にlayout stidを正しく解放しない問題です。nfs4_alloc_stid()は、新しいstidをcl_lock下でidr_alloc_cyclic()を介してcl->cl_stateidsに公開し、その後nfsd4_alloc_layout_stateid()に戻ります。nfsd4_layout_setlease()が失敗した場合、エラーパスではidr_remove()を一度も呼び出さずにkmem_cache_free()で直接レイアウトstateidを解放するため、IDRスロットが解放済みのスラブメモリを指し続けてしまいます。その結果、後続のIDRウォーカー(states_showやクライアントの終了処理など)がダングリングポインタを逆参照する問題が発生します。IDRに公開されたstidを正しく解放する処理はnfs4_put_stid()であり、この関数はcl_lock下でIDRスロットを削除し、sc_free(nfsd4_free_layout_stateid)をディスパッチしてls->ls_fileをnfsd4_close_layout()経由で解放し、さらにその末尾でnfs4_fileの参照を解放します。二つ目の問題は、この切り替え処理を妨げていました。nfsd4_free_layout_stateid()は、無条件でls_lock下でdelayed_work_pending()を使用してls->ls_fence_workを調べますが、INIT_DELAYED_WORK(&ls->ls_fence_work, ...)は現在、setlease呼び出しの後にのみ実行されています。setlease失敗パスでは、デストラクタが未初期化のdelayed_workにアクセスしてしまいます。修正としては、ls_fenced、ls_fence_delay、およびINIT_DELAYED_WORKの初期化をnfsd4_layout_setlease()の呼び出し前に移動し、手動でのnfsd_file_put、put_nfs4_file、kmem_cache_freeによるクリーンアップ処理を単一のnfs4_put_stid(stp)呼び出しに置き換えました。 | |
| CVSS による深刻度 (CVSS とは?) | |
|
CVSS v3 による深刻度
基本値: 9.8 (緊急) [その他]
| |
| 影響を受けるシステム | |
|
| |
Linux | |
|
| |
| 想定される影響 | |
・当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 | |
| 対策 | |
リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 | |
| ベンダ情報 | |
|
| |
| CWEによる脆弱性タイプ一覧 CWEとは? | |
| |
| 共通脆弱性識別子(CVE) CVEとは? | |
|
| |
| 参考情報 | |
| |
| 更新履歴 | |
|
| 公表日 | 2026/07/19 |
| 登録日 | 2026/07/30 |
| 最終更新日 | 2026/07/30 |



