【活用ガイド】

JVNDB-2026-013916

LinuxのLinux Kernelにおけるリソースのロックに関する脆弱性

概要

Linuxカーネルにおいて、以下の脆弱性が修正されました。ocfs2では、unlinkとdio_end_io_writeの間でデッドロックが発生する可能性がありました。ocfs2_unlinkは最初にorphanディレクトリのinode_lockを取得し、その後ip_alloc_semを取得します。一方、ocfs2_dio_end_io_writeではこれらのロックを逆の順序で取得します。これにより、ロッククラスocfs2_sysfile_lock_key[ORPHAN_DIR_SYSTEM_INODE]とocfs2_file_ip_alloc_sem_key間でABBAロック順序の違反が発生していました。ロックチェーン#0 (orphanディレクトリinode_lock - ip_alloc_sem)では、ocfs2_unlinkがocfs2_prepare_orphan_dir、ocfs2_lookup_lock_orphan_dirを経てinode_lock(orphan_dir_inode)でロックAを取得し、その後、__ocfs2_prepare_orphan_dir、ocfs2_prepare_dir_for_insert、ocfs2_extend_dir、ocfs2_expand_inline_dirを経てdown_write(&oi-ip_alloc_sem)でロックBを取得します。ロックチェーン#1 (ip_alloc_sem - orphanディレクトリinode_lock)では、ocfs2_dio_end_io_writeがdown_write(&oi-ip_alloc_sem)でロックBを取得し、その後ocfs2_del_inode_from_orphan()でinode_lock(orphan_dir_inode)のロックAを取得します。デッドロックシナリオは、CPU0のunlinkがinode_lock(orphan_dir_inode)を取得し、CPU1のdio_end_io_writeがdown_write(ip_alloc_sem)を取得する一方で、逆方向にロックを待つ状態です。ip_alloc_semは割り当て変更を保護するためのものであり、ocfs2_del_inode_from_orphanの操作とは無関係でした。したがって、デッドロックを修正するためにocfs2_del_inode_from_orphanの処理をip_alloc_semの外に移動しました。
CVSS による深刻度 (CVSS とは?)

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


Linux
  • Linux Kernel 4.6 以上 6.6.136 未満
  • Linux Kernel 6.13 以上 6.18.24 未満
  • Linux Kernel 6.19 以上 6.19.14 未満
  • Linux Kernel 6.7 以上 6.12.83 未満
  • Linux Kernel 7.0 以上 7.0.1 未満

想定される影響

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

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

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

  1. 不適切なロック(CWE-667) [NVD評価]
共通脆弱性識別子(CVE)  CVEとは?

  1. CVE-2026-31598
参考情報

  1. National Vulnerability Database (NVD) : CVE-2026-31598
  2. 関連文書 : ocfs2: fix possible deadlock between unlink and dio_end_io_write - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/4b80b5a838a32437f2cae0662578bac216a2c51a)
  3. 関連文書 : ocfs2: fix possible deadlock between unlink and dio_end_io_write - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/e049f7a9bd80b7319590789ea5e1c523d6339d91)
  4. 関連文書 : ocfs2: fix possible deadlock between unlink and dio_end_io_write - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/b02da26a992db0c0e2559acbda0fc48d4a2fd337)
  5. 関連文書 : ocfs2: fix possible deadlock between unlink and dio_end_io_write - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/bc0fb5c7d54c78be43a536df0e20dee32adb27d3)
  6. 関連文書 : ocfs2: fix possible deadlock between unlink and dio_end_io_write - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/2b884d52273c60c298bd570163e8053657bbaff6)
  7. 関連文書 : ocfs2: fix possible deadlock between unlink and dio_end_io_write - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/f9fb1a7b635849322e1d7b7b6b26389778ec8e82)
更新履歴

  • [2026年05月01日]
      掲載