CVE-2026-68138
net/sched: 並行するget/putに対してqdisc_rtab_listを直列化する
- 公開済み
- 2026/08/10
- 更新済み
- 2026/08/23
- CNA の割り当て
- Linux
- 観察された証拠
- 2026/08/19
プライマリ 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 日間
- パーセンタイル
- 21.0%
- モデルの日付
- 2026/09/21
EPSS は統計的な推定値であり、確実性や影響の尺度ではありません。 CVSS、KEV ステータス、暴露、環境と組み合わせます。
概要
Linux カーネルにおいて、以下の脆弱性が解決されました: net/sched: 並行する get/put に対して qdisc_rtab_list を直列化する qdisc_get_rtab() と qdisc_put_rtab() は、プロセスグローバルな単方向リンクリスト qdisc_rtab_list と、ロックなしのプレーンな非アトミックな 'int refcnt' を変更します。これは、これまで全ての呼び出し元が歴史的に RTNL ミューテックスを保持しており、すべてのレートテーブルの検索、挿入、解放を直列化していたため、安全でした。その不変条件はもはや成立しません。 cls_flower は TCF_PROTO_OPS_DOIT_UNLOCKED を設定するため、tc_new_tfilter() はそれに対して rtnl_held == false を維持し、TCA_ACT_FLAGS_NO_RTNL を設定します。このフラグは tcf_exts_validate_ex() -> tcf_action_init() -> tcf_action_init_1() -> tcf_police_init() を通じて伝播し、RTNL ミューテックスを保持しない状態で qdisc_get_rtab()/qdisc_put_rtab() を呼び出します。 異なる CPU 上の 2 つの RTM_NEWTFILTER リクエストが、それぞれ同じレートを持つ police アクションを伴う flower フィルタを追加すると、qdisc_rtab_list と非アトミックな refcnt 上で競合し、kmalloc-2k の struct qdisc_rate_table の use-after-free / double-free を引き起こします。qdisc_rtab_list は単一のグローバル(per-netns ではない)であるため、破損したオブジェクトはシステム全体で共有されます。 BUG: KASAN: slab-use-after-free in qdisc_put_rtab+0x12f/0x160 qdisc_put_rtab+0x12f/0x160 tcf_police_init+0xda9/0x1590 tcf_action_init_1+0x460/0x6b0 tcf_action_init+0x439/0xa40 tcf_exts_validate_ex+0x42d/0x550 fl_change+0xddd/0x7da0 tc_new_tfilter+0xaa7/0x2420 rtnetlink_rcv_msg+0x95e/0xe90 これはサイズ 2048 のキャッシュ kmalloc-2k に属します 専用のスピンロックで qdisc_rtab_list と参照カウントを保護します。qdisc_get_rtab() における(スリープ可能な GFP_KERNEL)割り当ては、ロックを取得する前に行われます。その間に並行する挿入者が同一のテーブルを追加した場合、新しく割り当てられたものはロック下で解放されるため、重複がリークされることはありません。qdisc_put_rtab() は現在、同じロック下で参照カウントをデクリメントし、リンクを解除します。
ソース
3- CVE-2026-68138エクスプロイト
Linux qdiscのレートテーブルのレースコンディションに対する概念実証(PoC)ローカル権限昇格エクスプロイト。BPFヒープグルーミングとパイプリークによりroot権限を獲得します。
責任ある使用
脆弱性情報は、自分が所有しているシステム、またはテストを許可されているシステムでのみ使用してください。 Kitploit は公開研究メタデータにリンクしており、エクスプロイト コードや悪意のあるペイロードは保存しません。