CVE-2026-74667
Description
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.
How to fix
- Linux Linux1e43a1d66615f411d427f9df1f46dd049d9e3681, 4057853a91fb796c4f47c7d1baf1aa085394148e, 2610ed4e86a4590234a9d70518c469751c5af231, b47ba8fe6e1d2df8c92048de5afafd059447dc30, 284f3e7a3f1a743fdf89e304fd1f19d5ffcff46d, 971aa7d99242bbf09513e27b7a243f0b29ff23ae, fdd4d7d52358a58e351dd9d82530c04eba8ccd7a, c2707480cfbf19c7619acc9c089d17f20869821f or later
Affected products
| Product | Affected versions | Fixed in |
|---|---|---|
| Linux Linux | 75c65772c3d18447d62d3aca5f91b06c16cc25e4 ≤ v < 1e43a1d66615f411d427f9df1f46dd049d9e3681, 75c65772c3d18447d62d3aca5f91b06c16cc25e4 ≤ v < 4057853a91fb796c4f47c7d1baf1aa085394148e, 75c65772c3d18447d62d3aca5f91b06c16cc25e4 ≤ v < 2610ed4e86a4590234a9d70518c469751c5af231, 75c65772c3d18447d62d3aca5f91b06c16cc25e4 ≤ v < b47ba8fe6e1d2df8c92048de5afafd059447dc30, 75c65772c3d18447d62d3aca5f91b06c16cc25e4 ≤ v < 284f3e7a3f1a743fdf89e304fd1f19d5ffcff46d, 75c65772c3d18447d62d3aca5f91b06c16cc25e4 ≤ v < 971aa7d99242bbf09513e27b7a243f0b29ff23ae, 75c65772c3d18447d62d3aca5f91b06c16cc25e4 ≤ v < fdd4d7d52358a58e351dd9d82530c04eba8ccd7a, 75c65772c3d18447d62d3aca5f91b06c16cc25e4 ≤ v < c2707480cfbf19c7619acc9c089d17f20869821f, 5.1 | 1e43a1d66615f411d427f9df1f46dd049d9e3681, 4057853a91fb796c4f47c7d1baf1aa085394148e, 2610ed4e86a4590234a9d70518c469751c5af231, b47ba8fe6e1d2df8c92048de5afafd059447dc30, 284f3e7a3f1a743fdf89e304fd1f19d5ffcff46d, 971aa7d99242bbf09513e27b7a243f0b29ff23ae, fdd4d7d52358a58e351dd9d82530c04eba8ccd7a, c2707480cfbf19c7619acc9c089d17f20869821f |
Check your version
Choose the product and enter the version you run to see whether it falls in the affected range.
Attack Surface Management
See the assets tied to your domains, the technologies they run and known vulnerabilities in one list.