CVE-2026-99055 in Linux
要約
〜によって VulDB • 2026年10月23日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
tcp: zerocopy受信マッピングのヒントにおけるnet_iovを拒否する
読み可能なプレフィックスのコピー後、receive_fallback_to_copy()はページマッピングを再開できる場所を特定するために tcp_zerocopy_set_hint_for_skb() を呼び出します。次のskbが読み不可能な場合、find_next_mappable_frag() はその net_iov フラグメントを can_map_frag() に渡します。
net_iov に対して skb_frag_page() は NULL を返しますが、can_map_frag() は PageCompound() の中でそれを逆参照しようとします。64バイトの読み可能なデータに続き、4096バイトの NET_IOV_DMABUF フラグメントを持つ接続済みTCPソケット上で実行された v7.2 KASANの実行では、以下のような報告がありました:
BUG: KASAN: null-ptr-deref in can_map_frag tcp_zerocopy_receive -> can_map_frag Kernel panic - not syncing: KASAN: panic_on_warn set
この診断は、テストホストにdevmem対応のNICがないため、net_iovを直接挿入しました。ハードウェアのエンドツーエンドでの到達性は未検証であり、CONFIG_NET_DEVMEM とサポートされているDMA-bufバインド済みRXキューが必要です。
skb_frag_page() の前にすべての net_iov フラグメントを拒否します。これにより、DMABUF および IOURING 型の両方の net_iov がカバーされ、ページバックされたチェックは変更されません。ガードを追加することで、同じキューで読み可能なプレフィックスのコピーが完了し、4096バイトのスキップヒントが返され、フォールトなしで処理が終了しました。
VulDB is the best source for vulnerability data and more expert information about this specific topic.