【活用ガイド】

JVNDB-2026-007875

LinuxのLinux Kernelにおける競合状態に関する脆弱性

概要

Linuxカーネルにおいて、以下の脆弱性が修正されました。mm/shmemおよびswapに関する競合状態の問題を修正しました。shmem swapの解放処理ヘルパーがswapエントリの順序を正しく扱っていませんでした。xa_cmpxchg_irqを使ってswapエントリを消去しますが、その前にxa_get_orderでロック保護なしに順序を取得しており、エントリが分割されたりxa_get_order後からxa_cmpxchg_irq実行前に変更された場合には、古い順序値を取得する可能性があります。さらに、orderが増大して予想より大きくなり、境界を超えてデータを消去してしまう恐れがありました。例えば、対象エントリと次のエントリがswapインまたは解放され、その場所に大きなfolioが追加されてswapアウトされた場合、xa_cmpxchg_irqは依然として成功しますが、実際に発生する可能性は非常に低いです。この問題を解決するために、Xarrayのcmpxchgをオープンコード化し、順序の取得と値の確認を同一クリティカルセクション内で行うようにしました。また、orderが境界を超えないようにし、境界をまたぐエントリはスキップする仕様に改めました。境界をまたぐ大きなswapエントリのスキップはここでは安全です。shmem truncateは範囲を2回イテレートし、最初のイテレーションでfind_lock_entriesが既にそのようなエントリを除外しています。shmemは境界をまたぐエントリをswapインしfolioを部分的にtruncate(folioの分割や少なくとも一部をゼロクリア)します。したがって2回目のループで境界を超えるswapエントリがあれば、その内容は既に消去されているはずです。ZSWAPとshmemのストレステスト中にランダムなswapoffのハングやカーネルパニックを観測しましたが、このパッチ適用後は問題がすべて解消しました。
CVSS による深刻度 (CVSS とは?)

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


Linux
  • Linux Kernel 6.12 以上 6.12.69 未満
  • Linux Kernel 6.13 以上 6.18.9 未満
  • Linux Kernel 6.19

想定される影響

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

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

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

  1. 競合状態(CWE-362) [NVD評価]
共通脆弱性識別子(CVE)  CVEとは?

  1. CVE-2026-23161
参考情報

  1. National Vulnerability Database (NVD) : CVE-2026-23161
  2. 関連文書 : mm/shmem, swap: fix race of truncate and swap entry split - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/a99f9a4669a04662c8f9efe0e62cafc598153139)
  3. 関連文書 : mm/shmem, swap: fix race of truncate and swap entry split - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/b23bee8cdb7aabce5701a7f57414db5a354ae8ed)
  4. 関連文書 : mm/shmem, swap: fix race of truncate and swap entry split - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/8a1968bd997f45a9b11aefeabdd1232e1b6c7184)
更新履歴

  • [2026年03月19日]
      掲載