CVE-2026-74667

CVE-2026-74667

High · published August 22, 2026

CVSS v3.1
7.8
EPSS
0%
Percentile
2.7
In the wild
Unconfirmed
What it is

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

net/packet: reset the MAC header on the packet-socket transmit path

packet_parse_headers() resets the MAC header only for a SOCK_RAW frame

whose socket did not bind a protocol. A protocol-bound SOCK_RAW socket,

any SOCK_DGRAM frame, and the legacy SOCK_PACKET path therefore leave

skb->mac_header unset here.

For frames sent via __dev_queue_xmit() this is harmless: it resets the

MAC header unconditionally. But the packet-socket PACKET_QDISC_BYPASS

path uses dev_direct_xmit(), which does not, so the frame reaches

ndo_start_xmit() with the MAC header unset. A driver that reads

eth_hdr(skb) on transmit then dereferences skb->head + (u16)~0, an

out-of-bounds access ~64 KiB past the head -- the same class fixed for

one consumer in commit f5089008f90c ("macsec: do not read an unset MAC

header in macsec_encrypt()").

packet_parse_headers() runs only on the transmit path, where skb->data

points at the start of the L2 header for every packet-socket type

regardless of its length: SOCK_RAW and SOCK_PACKET carry a user-supplied

header and SOCK_DGRAM has one built by dev_hard_header(). Reset the MAC

header unconditionally, mirroring __dev_queue_xmit(), so the frame is

anchored on the bypass path too.

Found by 0sec (https://0sec.ai) using automated source analysis;

verified against source and matched to the macsec KASAN report in

f5089008f90c. Compile-tested.

The record
Technical detail
CVSS v3.1
7.8 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00136 · 2.7th percentile
Published
2026-08-22T20:16Z
References (8)
EPSS history
Timeline
  • 22 AUG 15:32Z
    net/packet: reset the MAC header on the packet-socket transmit path
    cvelistv5