【活用ガイド】

JVNDB-2026-032210

LinuxのLinux Kernelにおける不特定の脆弱性

概要

Linuxカーネルにおいて、以下の脆弱性が解決されました。nilfs2では、範囲外のセグメント番号を持つCLEAN_SEGMENTS ioctlの拒否問題があります。Syzbotはnilfs_transaction_begin()でタスクがハングすることを報告しました。複数のタスクがnilfs2マウント上でchmod()を実行する間、143秒以上ns_segctor_semの読み取り権取得を待機してブロックされていました。情報として、タスクsyz.0.17:5918は143秒以上ブロックされています。コールトレースは以下の通りです。schedule+0x164/0x360、rwsem_down_read_slowpath+0x6d9/0x940、down_read+0x99/0x2e0、nilfs_transaction_begin+0x364/0x710(fs/nilfs2/segment.c:221)、nilfs_setattr+0x124/0x2c0(fs/nilfs2/inode.c:921)、notify_change+0xc1a/0xf40、chmod_common+0x273/0x4a0、do_fchmodat+0x12d/0x230です。ns_segctor_semを保持していたプロセスは、同時にNILFS_IOCTL_CLEAN_SEGMENTS呼び出し元であり、nilfs_sufile_updatev()からの要素ごとの警告を出力中にprintk内でスタックしていました。呼び出し元のスタックは、__nilfs_msg+0x373/0x450(fs/nilfs2/super.c:78)、nilfs_sufile_updatev+0x21c/0x6d0(fs/nilfs2/sufile.c:186)、nilfs_sufile_freev(fs/nilfs2/sufile.h:93 [inline])、nilfs_free_segments(fs/nilfs2/segment.c:1140 [inline])、nilfs_segctor_collect_blocks(fs/nilfs2/segment.c:1261 [inline])、nilfs_segctor_do_construct+0x1f55/0x76c0、nilfs_clean_segments+0x3bd/0xa50、nilfs_ioctl_clean_segments(fs/nilfs2/ioctl.c:922 [inline])、nilfs_ioctl+0x261f/0x2780です。根本原因は、ユーザーから提供されたセグメント番号がnilfs_clean_segments()が処理を開始する前に検証されていなかったことにあります。各segnumの範囲チェックは呼び出しチェーンの深い部分にあるnilfs_sufile_updatev()で行われ、不正なエントリごとにnilfs_warn()が発行されますが、その際にはsegctorロックとsufileのmi_semを保持しています。負荷が高くなり(複数マウントにまたがる繰り返し呼び出しによりグローバルprintk経路が飽和した場合)、累積するprintk遅延によってns_segctor_semが長時間保持されるため、hung_taskウォッチドッグが作動し、chmod()のように読み取りのためにns_segctor_semを必要とする同時処理がブロックされていました。修正内容は、nilfs_transaction_lock()を介してns_segctor_semを取得した直後にnilfs_clean_segments()内のkbufs[4]の内容を検証することです。ns_segctor_semを保持することで、ns_nsegmentsを変更可能なnilfs_ioctl_resize()との整合性の取れたチェックが可能になります。範囲外のセグメント番号は、セグメントのクリーン作業を開始する前に-EINVALで拒否されるため、問題のあるエントリがnilfs_sufile_updatev()内の要素単位の診断経路に到達しません。
CVSS による深刻度 (CVSS とは?)

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


Linux
  • Linux Kernel 2.6.31 以上 5.10.261 未満
  • Linux Kernel 5.11 以上 5.15.212 未満
  • Linux Kernel 5.16 以上 6.1.178 未満
  • Linux Kernel 6.13 以上 6.18.39 未満
  • Linux Kernel 6.19 以上 7.1.4 未満
  • Linux Kernel 6.2 以上 6.6.145 未満
  • Linux Kernel 6.7 以上 6.12.96 未満

想定される影響

・当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。
・当該ソフトウェアが扱う情報について、書き換えは発生しません。
・当該ソフトウェアが完全に停止する可能性があります。
対策

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

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

  1. 情報不足(CWE-noinfo) [NVD評価]
共通脆弱性識別子(CVE)  CVEとは?

  1. CVE-2026-64359
参考情報

  1. National Vulnerability Database (NVD) : CVE-2026-64359
  2. 関連文書 : nilfs2: reject CLEAN_SEGMENTS ioctl with out-of-range segment numbers - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/d26aef771b4f6923da9f89d6d5b70d8def5853de)
  3. 関連文書 : nilfs2: reject CLEAN_SEGMENTS ioctl with out-of-range segment numbers - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/0e7a690fe435f8d5ea3feb7c1d8d73ba7e8b8aa9)
  4. 関連文書 : nilfs2: reject CLEAN_SEGMENTS ioctl with out-of-range segment numbers - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/39607452b1400c7bf748f15122df4d058b768c5b)
  5. 関連文書 : nilfs2: reject CLEAN_SEGMENTS ioctl with out-of-range segment numbers - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/223463c488b0554212a94de971ea538eb2805fc7)
  6. 関連文書 : nilfs2: reject CLEAN_SEGMENTS ioctl with out-of-range segment numbers - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/286f77d002a337735c0846d7480a82d9cda2aa31)
  7. 関連文書 : nilfs2: reject CLEAN_SEGMENTS ioctl with out-of-range segment numbers - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/0789f0a6710713254a08f3a7d2ecbb6d1cbcf0aa)
  8. 関連文書 : nilfs2: reject CLEAN_SEGMENTS ioctl with out-of-range segment numbers - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/3ed388ec3b8922383d1e2d4432d7bd4cbbf8364e)
  9. 関連文書 : nilfs2: reject CLEAN_SEGMENTS ioctl with out-of-range segment numbers - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/876c98e0fc65f071680c03c2e2ee3ef7ff9ca078)
更新履歴

  • [2026年09月07日]
      掲載