【活用ガイド】

JVNDB-2026-016712

LinuxのLinux Kernelにおける有効期限後のメモリの解放の欠如に関する脆弱性

概要

Linuxカーネルにおいて、以下の脆弱性が修正されました。net: skbにおけるKFENCEで割り当てられたskbヘッドのクロスキャッシュ解放の問題が修正されています。SKB_SMALL_HEAD_CACHE_SIZEは、一般的なkmallocバケットサイズと衝突を避けるために意図的に2の累乗ではない値(例えばx86_64では704)に設定されています。この設定により、skb_kfree_head()はskb_end_offsetを使用し、skb_small_head_cacheから割り当てられたskbヘッドと一般的なkmallocキャッシュから割り当てられたskbヘッドを確実に区別できるようになっています。しかし、KFENCEが有効な場合、kfence_ksize()はスラブバケットサイズではなく正確な要求サイズを返します。呼び出し元(例えばbpf_test_init)がkzalloc()を使ってskbヘッドデータを割り当て、要求サイズがSKB_SMALL_HEAD_CACHE_SIZEと一致した場合、slab_build_skb() - ksize()はその正確な値を返します。skb_shared_infoのオーバーヘッドを差し引くとskb_end_offsetがSKB_SMALL_HEAD_HEADROOMと一致し、skb_kfree_head()が誤ってオブジェクトを元のkmallocキャッシュではなくskb_small_head_cacheに解放します。このためスラブのクロスキャッシュ解放が発生します。現象の例として、kmem_cache_free(skbuff_small_head): Wrong slab cache. Expected skbuff_small_head but got kmalloc-1kというエラーが発生します。この問題はskb_kfree_head()で常にkfree(head)を呼び出すことで修正されました。これにより解放パスは汎用的になり、KFENCEオブジェクトに対するアロケータ固有の誤分類を回避できます。
CVSS による深刻度 (CVSS とは?)

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


Linux
  • Linux Kernel 6.13 以上 6.18.23 未満
  • Linux Kernel 6.19 以上 6.19.13 未満
  • Linux Kernel 6.3 以上 6.6.136 未満
  • Linux Kernel 6.7 以上 6.12.82 未満
  • Linux Kernel 7.0

想定される影響

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

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

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

  1. 有効期限後のメモリの解放の欠如(CWE-401) [NVD評価]
共通脆弱性識別子(CVE)  CVEとは?

  1. CVE-2026-31429
参考情報

  1. National Vulnerability Database (NVD) : CVE-2026-31429
  2. 関連文書 : net: skb: fix cross-cache free of KFENCE-allocated skb head - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/128b03ccb2582a643983a48a37fda58df80edbde)
  3. 関連文書 : net: skb: fix cross-cache free of KFENCE-allocated skb head - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/60313768a8edc7094435975587c00c2d7b834083)
  4. 関連文書 : net: skb: fix cross-cache free of KFENCE-allocated skb head - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/2d64618ea846d8d033477311f805ca487d6a6696)
  5. 関連文書 : net: skb: fix cross-cache free of KFENCE-allocated skb head - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/474e00b935db250cac320d10c1d3cf4e44b46721)
  6. 関連文書 : net: skb: fix cross-cache free of KFENCE-allocated skb head - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/0f42e3f4fe2a58394e37241d02d9ca6ab7b7d516)
更新履歴

  • [2026年05月22日]
      掲載