【活用ガイド】

JVNDB-2026-014402

LinuxのLinux Kernelにおける境界外書き込みに関する脆弱性

概要

Linuxカーネルにおいて、以下の脆弱性が修正されました。ext4ファイルシステムで、truncate操作によりファイルサイズがインラインデータの容量を超えた場合に、インラインデータからextentベースのストレージへ変換する処理をext4_setattr()に追加しました。これにより、インラインデータフラグが設定されたままファイルサイズがインラインで格納可能な容量を超える不整合な状態になることを防ぎます。修正前は、以下の手順でカーネルがBUG_ON()を発生させてクラッシュしていました。1. インラインフラグがセットされていて小さいサイズのinodeを持つファイルシステムをマウントする。2. truncate(file, 50MB)でサイズを拡張するがインラインフラグは解除されなかった。3. sendfile()がデータ書き込みを試みる。4. ext4_write_inline_data()はwrite_sizeがinline_capacityを超えたためBUG_ON()を引き起こしていました。クラッシュは、ext4_write_inline_data()がインラインストレージ内への書き込みを前提としている一方で、実際のインライン容量(i_blockで約60バイト、xattrsで約96バイト)よりもファイルサイズと書き込み要求が大幅に大きいために発生していました。修正では、setattrによる新しいファイルサイズがinodeの実際のインライン容量(EXT4_I(inode)-i_inline_size)を超えた場合に、サイズ変更前にファイルをextentベースのストレージに変換し不整合を防止します。これにより、truncate操作中にインラインデータフラグとファイルサイズの整合性が維持され、根本的な問題が解決されました。
CVSS による深刻度 (CVSS とは?)

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


Linux
  • Linux Kernel 3.8 以上 5.10.253 未満
  • Linux Kernel 5.11 以上 5.15.203 未満
  • Linux Kernel 5.16 以上 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 7.0

想定される影響

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

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

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

  1. 境界外書き込み(CWE-787) [NVD評価]
共通脆弱性識別子(CVE)  CVEとは?

  1. CVE-2026-31452
参考情報

  1. National Vulnerability Database (NVD) : CVE-2026-31452
  2. 関連文書 : ext4: convert inline data to extents when truncate exceeds inline size - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/f53a5d9f32924bc2a810d2df243b7714da58b636)
  3. 関連文書 : ext4: convert inline data to extents when truncate exceeds inline size - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/110d7ef602659ce4d7947c5480f7ca2779696aaf)
  4. 関連文書 : ext4: convert inline data to extents when truncate exceeds inline size - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/93cb2d103e5c707de0f7ad58a39b7f0fddc27aa6)
  5. 関連文書 : ext4: convert inline data to extents when truncate exceeds inline size - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/699bac4d4c951974d55b045c983d1de777215949)
  6. 関連文書 : ext4: convert inline data to extents when truncate exceeds inline size - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/7920dcc571cef3d8aa9ee109c136125d61d41669)
  7. 関連文書 : https://git.kernel.org/stable/c/07c1a31af18290054da3d18221b8bf58983c5d3a
  8. 関連文書 : ext4: convert inline data to extents when truncate exceeds inline size - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/c047332be7195833a5c5126816c2502df8269fe4)
  9. 関連文書 : ext4: convert inline data to extents when truncate exceeds inline size - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/ed9356a30e59c7cc3198e7fc46cfedf3767b9b17)
更新履歴

  • [2026年05月08日]
      掲載