CVE-2026-52943
net: skbuff: pskb_carve ヘルパーにおける zerocopy 参照の欠落を修正
- 公開済み
- 2026/06/24
- 更新済み
- 2026/09/08
- CNA の割り当て
- Linux
- 観察された証拠
- 2026/08/17
プライマリ 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.1%
- モデルの日付
- 2026/09/21
EPSS は統計的な推定値であり、確実性や影響の尺度ではありません。 CVSS、KEV ステータス、暴露、環境と組み合わせます。
概要
Linux カーネルにおいて、以下の脆弱性が解決されました: net: skbuff: pskb_carve ヘルパーにおけるゼロコピー参照の欠落を修正 pskb_carve_inside_header() と pskb_carve_inside_nonlinear() はどちらも、memcpy() を介して古い skb_shared_info ヘッダーを新しいバッファにコピーします。これには、MSG_ZEROCOPY skb の destructor_arg ポインタ (uarg) が含まれます。どちらの関数も新しい shinfo に対して net_zcopy_get() を呼び出さないため、未計上のホルダーが作成されます: destructor_arg が設定されたすべての skb_shared_info は、解放時に skb_zcopy_clear() を一度呼び出しますが、新しいコピーに対して対応する net_zcopy_get() が呼び出されることはありませんでした。繰り返し呼び出しにより uarg->refcnt が早期にゼロに減少し、TX skb がまだ有効な destructor_arg ポインタを保持している間に ubuf_info_msgzc が解放されます。KASAN は解放された ubuf_info_msgzc に対する use-after-free を報告します: BUG: KASAN: slab-use-after-free in skb_release_data+0x77b/0x810 Read of size 8 at addr ffff88801574d3e8 by task poc/220 Call Trace: skb_release_data+0x77b/0x810 kfree_skb_list_reason+0x13e/0x610 skb_release_data+0x4cd/0x810 sk_skb_reason_drop+0xf3/0x340 skb_queue_purge_reason+0x282/0x440 rds_tcp_inc_free+0x1e/0x30 rds_recvmsg+0x354/0x1780 __sys_recvmsg+0xdf/0x180 Allocated by task 219: msg_zerocopy_realloc+0x157/0x7b0 tcp_sendmsg_locked+0x2892/0x3ba0 Freed by task 219: ip_recv_error+0x74a/0xb10 tcp_recvmsg+0x475/0x530 遅延アクセスを消費する skb は、pskb_carve_inside_nonlinear() によって参照カウントの増加なしにコピーされた shinfo->destructor_arg を介して、同じ uarg を依然として参照していました。これは確実に悪用可能であることが検証されています: 実用的な概念実証により、デフォルトのカーネル構成で非特権ローカルユーザーから完全な root 権限昇格を達成します。この修正は、同じ memcpy/cloned 構造を持つ pskb_expand_head() のパターンに従います。pskb_carve_inside_header() の場合、net_zcopy_get() は skb_orphan_frags() が成功した後に配置されるため、オーファンエラーパスはクリーンアップを必要としません。pskb_carve_inside_nonlinear() の場合、net_zcopy_get() はすべての失敗ポイントの後、かつ skb_release_data() の直前に配置されるため、エラーパスはクリーンアップを一切必要としません — pskb_expand_head() により厳密に一致し、バランスを取るための net_zcopy_put() の必要性を回避します。
ソース
1これは、Linuxカーネル内のskbuff.cにおける解放後使用(use-after-free)の脆弱性CVE-2026-52943に対するローカル権限昇格の概念実証(PoC)コードです。私が発見した初の0dayです。
責任ある使用
脆弱性情報は、自分が所有しているシステム、またはテストを許可されているシステムでのみ使用してください。 Kitploit は公開研究メタデータにリンクしており、エクスプロイト コードや悪意のあるペイロードは保存しません。