CVE-2026-74684

CVE-2026-74684

High · published August 22, 2026

CVSS v3.1
7.1
EPSS
0%
Percentile
3.5
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

net: tap: set skb->dev before parsing virtio net header in tap_get_user_xdp()

The commit 4f61f133f354 ("net: tap: NULL pointer derefence in

dev_parse_header_protocol when skb->dev is null") fixed a crash in

tap_get_user() by assigning skb->dev before calling tun_vnet_hdr_to_skb().

This is required because virtio_net_hdr_to_skb() may invoke

dev_parse_header_protocol(), which dereferences skb->dev. Without the

assignment, a NULL pointer dereference can occur.

However, tap_get_user_xdp() still parses the virtio-net header before

assigning skb->dev. When the vhost TX path passes an XDP buffer containing

a GSO virtio-net header but the protocol is set to zero on purpose,

tun_vnet_hdr_to_skb() can reach dev_parse_header_protocol() while skb->dev

is still NULL, resulting in a crash.

Fix this by looking up the tap device and assigning skb->dev before calling

tun_vnet_hdr_to_skb(), matching the ordering already used in

tap_get_user(). Preserve the existing RCU read-side critical section across

dev_queue_xmit().

The record
Technical detail
CVSS v3.1
7.1 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:N/I:N/A:H
CVSS v4.0
Not supplied
EPSS
0.00146 · 3.5th percentile
Published
2026-08-22T20:16Z
References (5)
EPSS history
Timeline
  • 22 AUG 15:32Z
    net: tap: set skb->dev before parsing virtio net header in tap_get_user_xdp()
    cvelistv5