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値]
| |
| 影響を受けるシステム | |
|
| |
Linux | |
|
| |
| 想定される影響 | |
当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 | |
| 対策 | |
リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 | |
| ベンダ情報 | |
|
| |
| CWEによる脆弱性タイプ一覧 CWEとは? | |
| |
| 共通脆弱性識別子(CVE) CVEとは? | |
|
| |
| 参考情報 | |
| |
| 更新履歴 | |
|
| 公表日 | 2026/04/20 |
| 登録日 | 2026/05/22 |
| 最終更新日 | 2026/05/22 |



