LinuxのLinux Kernelにおける解放済みメモリの使用に関する脆弱性
タイトル LinuxのLinux Kernelにおける解放済みメモリの使用に関する脆弱性
概要

Linuxカーネルにおいて、以下の脆弱性が修正されました:netfilterのnft_ctにおけるtimeoutオブジェクト破棄時のUse-After-Freeの問題を修正しました。nft_ct_timeout_obj_destroy()関数はnf_ct_untimeout()直後にkfree()でtimeoutオブジェクトを解放していましたが、RCUのグレース期間を待たずに解放を行っていました。そのため、他のCPUにおける並行パケット処理がnf_ct_timeout_data()内でrcu_dereference()経由で取得されたtimeoutオブジェクトへのRCU保護された参照を保持している可能性がありました。これを受けて、struct nf_ct_timeoutにrcu_headを追加し、kfree_rcu()を用いてRCUグレース期間後に解放を遅延させる方法を採用しました。この対応はnfnetlink_cttimeout.cで既に用いられている手法と一致しています。KASANのレポートによると、nf_conntrack_tcp_packet関数内でサイズ4の読み取りに関するslab-use-after-freeエラーが発生しました。このエラーはアドレスffff8881035fe19cにてタスクexploit/80によって検出され、コールトレースにはnf_conntrack_tcp_packet、nf_conntrack_in、nf_hook_slow、__ip_local_out、tcp_sendmsg_locked、__sys_sendtoが含まれていました。割り当てはタスク75によってnft_ct_timeout_obj_init、nft_obj_init、nf_tables_newobj、nfnetlink_rcv_batch関数群内で実施され、解放はタスク26によってnft_obj_destroy、nf_tables_trans_destroy_work、process_one_workが関与して行われました。

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

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

公表日 2026年4月24日0:00
登録日 2026年4月30日12:31
最終更新日 2026年4月30日12:31
CVSS3.0 : 重要
スコア 7.8
ベクター CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
影響を受けるシステム
Linux
Linux Kernel 4.19
Linux Kernel 4.19.1 以上 5.10.253 未満
Linux Kernel 5.11 以上 5.15.203 未満
Linux Kernel 5.16 以上 6.1.169 未満
Linux Kernel 6.13 以上 6.18.23 未満
Linux Kernel 6.19 以上 6.19.13 未満
Linux Kernel 6.2 以上 6.6.135 未満
Linux Kernel 6.7 以上 6.12.82 未満
Linux Kernel 7.0
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
その他
変更履歴
No 変更内容 変更日
1 [2026年04月30日]
  掲載
2026年4月30日12:31

NVD脆弱性情報
CVE-2026-31665
概要

In the Linux kernel, the following vulnerability has been resolved:

netfilter: nft_ct: fix use-after-free in timeout object destroy

nft_ct_timeout_obj_destroy() frees the timeout object with kfree()
immediately after nf_ct_untimeout(), without waiting for an RCU grace
period. Concurrent packet processing on other CPUs may still hold
RCU-protected references to the timeout object obtained via
rcu_dereference() in nf_ct_timeout_data().

Add an rcu_head to struct nf_ct_timeout and use kfree_rcu() to defer
freeing until after an RCU grace period, matching the approach already
used in nfnetlink_cttimeout.c.

KASAN report:
BUG: KASAN: slab-use-after-free in nf_conntrack_tcp_packet+0x1381/0x29d0
Read of size 4 at addr ffff8881035fe19c by task exploit/80

Call Trace:
nf_conntrack_tcp_packet+0x1381/0x29d0
nf_conntrack_in+0x612/0x8b0
nf_hook_slow+0x70/0x100
__ip_local_out+0x1b2/0x210
tcp_sendmsg_locked+0x722/0x1580
__sys_sendto+0x2d8/0x320

Allocated by task 75:
nft_ct_timeout_obj_init+0xf6/0x290
nft_obj_init+0x107/0x1b0
nf_tables_newobj+0x680/0x9c0
nfnetlink_rcv_batch+0xc29/0xe00

Freed by task 26:
nft_obj_destroy+0x3f/0xa0
nf_tables_trans_destroy_work+0x51c/0x5c0
process_one_work+0x2c4/0x5a0

公表日 2026年4月25日0:16
登録日 2026年4月25日4:08
最終更新日 2026年4月28日0:16
関連情報、対策とツール
共通脆弱性一覧