【活用ガイド】

JVNDB-2026-019517

LinuxのLinux Kernelにおける初期化されていないリソースの使用に関する脆弱性

概要

Linuxカーネルにおいて、以下の脆弱性が修正されました。hfsplusのカタログレコードサイズの検証を強化し、未初期化値の問題に対処しました。Syzbotはhfsplus_strcasecmp()内でKMSAN未初期化値の問題を報告しました。根本原因は、hfs_brec_read()がオンディスクのレコードサイズと読み取ろうとしているレコードタイプの想定サイズが一致しているかを検証していなかったことにあります。破損したファイルシステムをマウントする際、hfs_brec_read()は期待よりも少ないデータを読み取る場合がありました。例えば、カタログスレッドレコードを読むとき、デバッグ出力は次のように示されました: HFSPLUS_BREC_READ: rec_len=520, fd-entrylength=26 HFSPLUS_BREC_READ: WARNING - entrylength (26) rec_len (520) - PARTIAL READ! hfs_brec_read()はentrylengthがバッファサイズを超えていないことのみ検証し、期待値より小さいかはチェックしていませんでした。その結果、520バイトの構造体に26バイトのみを正常に読み込み成功を返し、494バイトが未初期化のまま残りました。このtmp.thread.nodeName内の未初期化データはhfsplus_cat_build_key_uni()でコピーされ、hfsplus_strcasecmp()で使用されました。これにより、case_fold()内で未初期化バイトが配列インデックスとして使用された際にKMSAN警告が発生しました。修正ではhfsplus_brec_read_cat()ラッパーを導入し、1. hfs_brec_read()を呼び出してデータを読み込む 2. typeフィールドに基づきレコードサイズを検証(フォルダ・ファイルレコードは固定サイズ、スレッドレコードは文字列長に依存する可変サイズ) 3. サイズが期待と異なる場合は-EIOを返す、という手順を実装しました。スレッドレコードについては、nodeName.lengthを読む前にHFSPLUS_MIN_THREAD_SZと照合し、entry構造体をゼロ初期化していない呼び出し箇所での未初期化データ読み取りを回避しました。また、防御的プログラミングとしてhfsplus_find_cat()内のtmp変数も初期化し、検証がバイパスされた場合でも未初期化データが残らないようにしています。
CVSS による深刻度 (CVSS とは?)

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


Linux
  • Linux Kernel 2.6.12.1 以上 6.6.140 未満
  • Linux Kernel 6.13 以上 6.18.30 未満
  • Linux Kernel 6.19 以上 7.0.7 未満
  • Linux Kernel 6.7 以上 6.12.88 未満
  • Linux Kernel 2.6.12

想定される影響

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

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

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

  1. 初期化されていないリソースの使用(CWE-908) [NVD評価]
共通脆弱性識別子(CVE)  CVEとは?

  1. CVE-2026-46169
参考情報

  1. National Vulnerability Database (NVD) : CVE-2026-46169
  2. 関連文書 : hfsplus: fix uninit-value by validating catalog record size - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/93e8d613f1a01b6637f387cc93f184cf7fb881d6)
  3. 関連文書 : hfsplus: fix uninit-value by validating catalog record size - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/c91bbd6193c70a02c50c22e0fb1f60c3c5bd053a)
  4. 関連文書 : hfsplus: fix uninit-value by validating catalog record size - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/a420904450962a562ad053a41a53a27755021b48)
  5. 関連文書 : hfsplus: fix uninit-value by validating catalog record size - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/b6b592275aeff184aa82fcf6abccd833fb71b393)
  6. 関連文書 : hfsplus: fix uninit-value by validating catalog record size - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/61a790974ff7e533acbceca06c7d02f22bf96d4d)
更新履歴

  • [2026年06月12日]
      掲載