【活用ガイド】

JVNDB-2026-013639

LinuxのLinux Kernelにおける整数オーバーフローの脆弱性

概要

Linuxカーネルにおいて、以下の脆弱性が修正されました。mm: filemap: filemap_map_pages()におけるnr_pages計算のオーバーフローを修正しました。Arm64マシン上でv7.0-rc3カーネルのstress-ngを実行した際に、「Bad page state」という非常に異常なクラッシュが発生しました。ページの状態を解析したところ、refcountが0であるにもかかわらずmapcountが0でない理由が理解しづらく、この問題は発生箇所ではないページにおいても確認されました。CONFIG_DEBUG_VMを有効化したところ、同様のクラッシュが再現され、該当問題に関する最初の警告が以下のように捕捉されました。VM_WARN_ON_FOLIO(page_folio(page + nr_pages - 1) != folio, folio)というコードが警告を発し、set_pte_range()が大きなfolioのサイズを超えてマッピングしようとしたことを示しています。詳細なデバッグ情報から、filemap_map_pages()内でnr_pagesがオーバーフローし、set_pte_range()がfolioサイズを超えた範囲をマッピングしてしまい、本来そのfolioに属さないページのフィールド(例:page-_mapcount)が破損する可能性があることが判明しました。問題の根本原因は、CPU0側でファイルの終端ページオフセット(end_pgoff)の計算がfolio取得より後に行われていたため同期が取れず、nr_pagesがオーバーフローしたためです。修正として、end_pgoffの計算をnext_uptodate_folio()呼び出しの前に移動させることで、取得するfolioとファイル終端の一貫性を保ち、この問題を防止しています。
CVSS による深刻度 (CVSS とは?)

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


Linux
  • Linux Kernel 6.1.159 以上 6.2 未満
  • Linux Kernel 6.12.1 以上 6.12.82 未満
  • Linux Kernel 6.13 以上 6.18.23 未満
  • Linux Kernel 6.19 以上 6.19.13 未満
  • Linux Kernel 6.6.117 以上 6.6.135 未満
  • Linux Kernel 6.12
  • Linux Kernel 7.0

想定される影響

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

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

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

  1. 整数オーバーフローまたはラップアラウンド(CWE-190) [NVD評価]
共通脆弱性識別子(CVE)  CVEとは?

  1. CVE-2026-31648
参考情報

  1. National Vulnerability Database (NVD) : CVE-2026-31648
  2. 関連文書 : mm: filemap: fix nr_pages calculation overflow in filemap_map_pages() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/633ab680c405ac390e6bec5b74aaf46197c837b6)
  3. 関連文書 : mm: filemap: fix nr_pages calculation overflow in filemap_map_pages() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/f58df566524ebcdfa394329c64f47e3c9257516e)
  4. 関連文書 : mm: filemap: fix nr_pages calculation overflow in filemap_map_pages() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/88591194df736a508dd5461ab2167a61e98caac1)
  5. 関連文書 : mm: filemap: fix nr_pages calculation overflow in filemap_map_pages() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/9316a820b9aae07d44469d6485376dad824c5b3f)
  6. 関連文書 : mm: filemap: fix nr_pages calculation overflow in filemap_map_pages() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/576543bedd616254032d4ebe54a90076f9e31740)
更新履歴

  • [2026年04月30日]
      掲載