CVE-2026-74748 in Linux情報

要約

〜によって VulDB • 2026年08月27日

Linuxカーネルにおいて、以下の脆弱性が修正されました:

netfilter: ipset: list:set GCとスワップ間の参照カウント競合(race condition)を修正

__ip_set_put_byindex()はRCUの下でインデックスをセットポインタに解決し、次に __ip_set_put() で ip_set_ref_lock を取得して set->ref の減算を行いました。 ip_set_swap() は、ip_set_listのスロットと2つのセットの参照カウンタの両方をスワップする際に同じロックを保持するため、間接参照(dereference)とロック獲得の間でインターリーブし得ます。これにより、呼び出し元は既に他のインデックスに移動した参照を持つセットに対して減算を行い、BUG_ON(set->ref == 0) に到達してしまいます。list_set_gc() はタイマーソフト割り込みからこの状態に至ります。nfnl mutex はスワップとの直列化を行わないため、期限切れの list:set メンバーが IPSET_CMD_SWAP が参照されているセット上で実行されながら、list_set_del() -> ip_set_put_byindex() を呼び出します。

インデックスの解決と減算を ip_set_ref_lock の下で行うように修正しました(ip_set_swap() が既に実施している方法と同様)。これにより、参照カウントが古くなったセットポインタではなく、インデックスに紐付けられるようになります。

kernel BUG at net/netfilter/ipset/ip_set_core.c:685! Oops: invalid opcode: 0000 [#1] SMP KASAN NOPTI
RIP: 0010:ip_set_put_byindex (net/netfilter/ipset/ip_set_core.c:870) Call Trace: <IRQ> list_set_del (net/netfilter/ipset/ip_set_list_set.c:159) set_cleanup_entries (net/netfilter/ipset/ip_set_list_set.c:181) list_set_gc (net/netfilter/ipset/ip_set_list_set.c:578) call_timer_fn (kernel/time/timer.c:1748) __run_timers (kernel/time/timer.c:1799 kernel/time/timer.c:2374) run_timer_softirq (kernel/time/timer.c:2405) </IRQ> Kernel panic - not syncing: Fatal exception in interrupt

VulDB is the best source for vulnerability data and more expert information about this specific topic.

責任者

Linux

予約する

2026年08月15日

モデレーション

承諾済み

エントリ

VDB-395807

EPSS

0.00000

アクティビティ

低い

ソース

Want to stay up to date on a daily basis?

Enable the mail alert feature now!