【活用ガイド】

JVNDB-2026-013304

LinuxのLinux KernelにおけるNULL ポインタデリファレンスに関する脆弱性

概要

Linuxカーネルにおいて、以下の脆弱性が修正されました。ksmbdのsmb2_lock()関数におけるメモリリークおよびNULL参照の問題を修正しました。smb2_lock()では、no_check_clでlist_del()がsmb_lockをlock_listから切り離した後に、3つのエラー処理問題が存在していました。まず、非UNLOCKパスにおいてvfs_lock_file()が予期しないエラーを返した場合、goto outによってsmb_lockおよびそのflockがリークしていました。これはout:ハンドラがlock_listとrollback_listのみをイテレートし、切り離されたsmb_lockを含んでいなかったためです。次に、UNLOCKパスでvfs_lock_file()が-ENOENTを返した場合も同様に、goto outによってsmb_lockとflockがリークし、ディスパッチャに返されるエラーコードも古いままでした。最後に、ロールバックパスでsmb_flock_init()が割り当て失敗によりNULLを返すことがあり、その戻り値が無条件に参照されたため、カーネルのNULLポインタ参照が発生していました。クラッシュを防ぐためにNULLチェックを追加し、管理情報を適切にクリーンアップしています。割り当てがない場合、VFSロック自体はロールバックできず、ファイルまたは接続の終了時に解放されます。ケース1および2については、UNLOCKブランチのif(!rc)チェックの前にlocks_free_lock()やkfree()を移動させ、すべての終了パスが1つの解放箇所を共有するように修正しました。また、非UNLOCKブランチではgoto outの前にsmb_lockとflockを解放するようにしています。さらに、両ケースで正しいエラーコードを伝播させるようにしています。ケース3は、VFSアンロックをif(rlock)でガードし、共通のクリーンアップ処理内でlocks_free_lock(rlock)のNULLチェックを追加して修正しました。この脆弱性はsqryを用いたコールグラフ解析で発見されました。
CVSS による深刻度 (CVSS とは?)

CVSS v3 による深刻度
基本値: 7.5 (重要) [その他]
  • 攻撃元区分: ネットワーク
  • 攻撃条件の複雑さ: 低
  • 攻撃に必要な特権レベル: 不要
  • 利用者の関与: 不要
  • 影響の想定範囲: 変更なし
  • 機密性への影響(C): なし
  • 完全性への影響(I): なし
  • 可用性への影響(A): 高
影響を受けるシステム


Linux
  • Linux Kernel 5.15.1 以上 6.1.168 未満
  • Linux Kernel 6.13 以上 6.18.21 未満
  • Linux Kernel 6.19 以上 6.19.11 未満
  • Linux Kernel 6.2 以上 6.6.131 未満
  • Linux Kernel 6.7 以上 6.12.80 未満
  • Linux Kernel 5.15
  • Linux Kernel 7.0

想定される影響

当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。
また、当該ソフトウェアが扱う情報について、書き換えは発生しません。
さらに、当該ソフトウェアが完全に停止する可能性があります。
そして、この脆弱性を悪用した攻撃の影響は、他のソフトウェアには及びません。
対策

リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。
ベンダ情報

CWEによる脆弱性タイプ一覧  CWEとは?

  1. NULL ポインタデリファレンス(CWE-476) [NVD評価]
共通脆弱性識別子(CVE)  CVEとは?

  1. CVE-2026-31477
参考情報

  1. National Vulnerability Database (NVD) : CVE-2026-31477
  2. 関連文書 : ksmbd: fix memory leaks and NULL deref in smb2_lock() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/3cdacd11b41569ce75b3162142240f2355e04900)
  3. 関連文書 : ksmbd: fix memory leaks and NULL deref in smb2_lock() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/c9b95ef6f5039f19e46c3a521a4fe1752d91dfe9)
  4. 関連文書 : ksmbd: fix memory leaks and NULL deref in smb2_lock() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/91aeaa7256006d79a37298f5a1df23325db91599)
  5. 関連文書 : ksmbd: fix memory leaks and NULL deref in smb2_lock() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/aab42f0795620cf0d3955a520f571f697d0f9a2a)
  6. 関連文書 : https://git.kernel.org/stable/c/309b44ed684496ed3f9c5715d10b899338623512
  7. 関連文書 : ksmbd: fix memory leaks and NULL deref in smb2_lock() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/cdac6f7e7e428dc70e3b5898ac6999a72ed13993)
更新履歴

  • [2026年04月30日]
      掲載