【活用ガイド】

JVNDB-2026-014963

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

概要

Linuxカーネルにおいて、以下の脆弱性が修正されました。btrfsにおいて、ログ再生後にサイズが非ゼロであるにもかかわらず、ゼロサイズのinodeが設定される問題が修正されました。新しい名前のログ記録やディレクトリの新しいエントリのログ記録の一部としてinodeの存在をログ記録する際、ログされたinodeアイテムの世代は常に0に設定されます。これはログ再生時(overwrite_item()内)に、inodeが存在することだけをログしているためにi_sizeを設定すべきではなく、サブボリュームツリー内のinodeのi_sizeを保持する必要があることを示しています(新しい名前やinodeの存在だけをログするときはextentsはログしません)。しかしこれは、すでにフルモードでinodeがログされた場合や、過去のトランザクションで作成されたinodeを初めてログするときに、そのinodeの新しいi_sizeが0になる点に問題があります。新しい名前のログ(新しいハードリンクやリネームによる)を行うと、inodeのi_sizeが0かつ世代が0としてログされ、この場合ログ再生コードはinodeのi_sizeを0に更新しない(overwrite_item()内)という問題が発生します。具体的なシナリオ例は以下の通りです。mkdir /mnt/dir xfs_io -f -c "pwrite 0 64K" /mnt/dir/foo sync xfs_io -c "truncate 0" -c "fsync" /mnt/dir/foo ln /mnt/dir/foo /mnt/dir/bar xfs_io -c "fsync" /mnt/dir 電源断。ログ再生後、ファイルのサイズは64Kのまま残ります。これは最初にinodeをログするとき、fooファイルをfsyncした際に現在のi_sizeである0をログし、その後ハードリンクを作成するとinodeを存在モード(LOG_INODE_EXISTS)で再度ログしますが、ログツリーに追加するinodeアイテムの世代を0に設定しているため、ログ再生中にoverwrite_item()は世代とi_sizeの両方が0であることを検出し、inodeのi_sizeを64Kから0に更新する処理をスキップするためです。修正はfill_inode_item()において、現在のトランザクションでログしたi_sizeとともに実際のinodeの世代を常にログするようにし、過去のトランザクションで作成されたinodeが存在モードのみでログされた場合でも、コミットルートから取得したinodeアイテムのi_sizeをログすることで、複数回inodeの存在をログしても正しいi_sizeを得られるようにしました。fstests用のテストケースは近日中に提供される予定です。
CVSS による深刻度 (CVSS とは?)

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


Linux
  • Linux Kernel 2.6.30 以上 6.18.24 未満
  • Linux Kernel 6.19 以上 6.19.14 未満
  • Linux Kernel 7.0

想定される影響

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

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

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

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

  1. CVE-2026-43118
参考情報

  1. National Vulnerability Database (NVD) : CVE-2026-43118
  2. 関連文書 : btrfs: fix zero size inode with non-zero size after log replay - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/5254d4181add9dfaa5e3519edd71cc8f752b2f85)
  3. 関連文書 : btrfs: fix zero size inode with non-zero size after log replay - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/fddb157536e67a055597f00a8b4922d5f5ed0826)
  4. 関連文書 : btrfs: fix zero size inode with non-zero size after log replay - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/03e966b63df5b06790310c1faaf3e0cb43adea8b)
更新履歴

  • [2026年05月11日]
      掲載