CVE-2026-53264
net/sched: act_api: アクションライフサイクルにRCUと遅延解放を使用
- 公開済み
- 2026/06/25
- 更新済み
- 2026/08/05
- CNA の割り当て
- Linux
- 観察された証拠
- 2026/08/07
プライマリ CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H低 · 今後 30 日間
- パーセンタイル
- 15.6%
- モデルの日付
- 2026/09/21
EPSS は統計的な推定値であり、確実性や影響の尺度ではありません。 CVSS、KEV ステータス、暴露、環境と組み合わせます。
概要
Linuxカーネルにおいて、以下の脆弱性が解決されました:net/sched: act_api: アクションのライフサイクルにRCUと遅延解放を使用 NEWTFILTERとDELFILTERが同時に実行されると、関連するアクションとの間で競合状態が発生する可能性があります。CPU0でNEWTFILTERを実行し、CPU1でDELFILTERを実行するケースで説明します: 0: mutex_lock() <-- idrロックを保持 0: rcu_read_lock() 0: p = idr_find(idr, index) <-- アクションpは有効(RCUがIDRを保護) 0: mutex_unlock() <-- idrロックを解放 1: refcount_dec_and_mutex_lock() <-- refcnt 1->0、mutex保持 1: idr_remove(idr, index) <-- アクションがIDRから削除される 1: mutex_unlock() <-- mutex解放によりアクションの削除が可能に 1: tcf_action_cleanup(p); kfree(p) <-- pを即座にkfree、遅延なし 0: refcount_inc_not_zero(&p->tcfa_refcnt) <-- 問題発生、UAF pは解放済みメモリを指す このパッチは、遅延処理に使用するstruct rcu_headをtc_actionに追加し、削除パスにcall_rcu()を導入して最終的なkfree()を遅延させることで、NEWTFILTERとDELFILTER間の競合状態を修正します。 注:これはコミットd7fb60b9cafb("net_sched: get rid of tcfa_rcu")のリバートですが、kfree_rcu()を直接使用するための近代化・簡素化も含まれています。 復元された新しいコードパスで説明します: 0: rcu_read_lock() 1: refcount_dec_and_mutex_lock() <-- refcnt 1->0、mutex保持 1: idr_remove(idr, index) 1: mutex_unlock() 1: call_rcu(&p->tcfa_rcu, tcf_action_rcu_free) <-- 猶予期間後にkfreeを遅延 0: p = idr_find(idr, index) 0: refcount_inc_not_zero(&p->tcfa_refcnt) <-- 失敗、refcntは既に0 1: rcu_read_unlock() <-- 解放し、猶予期間後に解放を実行可能に CPU1がidr_remove()を呼び出した後、オブジェクトはIDR経由では到達不能になります。CPU0の後続のidr_find()はNULLを返し、たとえ古いポインタを保持していたとしても、即時のkfree()はRCU猶予期間が経過するまで遅延されるため、UAFは発生しません。
ソース
2CVE-2026-53264 - 下書き
- CVEPoC
STAR Labsチームが発見した、または他者が発見したさまざまなCVE向けに作成された、概念実証エクスプロイトスクリプトのコレクション。
責任ある使用
脆弱性情報は、自分が所有しているシステム、またはテストを許可されているシステムでのみ使用してください。 Kitploit は公開研究メタデータにリンクしており、エクスプロイト コードや悪意のあるペイロードは保存しません。