CVE-2026-74667

Source
https://cve.org/CVERecord?id=CVE-2026-74667
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-74667.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2026-74667
Downstream
Published
2026-08-22T15:32:38.862Z
Modified
2026-08-24T11:47:20.434808872Z
Summary
net/packet: reset the MAC header on the packet-socket transmit path
Details

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

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

packetparseheaders() resets the MAC header only for a SOCKRAW frame whose socket did not bind a protocol. A protocol-bound SOCKRAW socket, any SOCKDGRAM frame, and the legacy SOCKPACKET path therefore leave skb->mac_header unset here.

For frames sent via __devqueuexmit() this is harmless: it resets the MAC header unconditionally. But the packet-socket PACKETQDISCBYPASS path uses devdirectxmit(), which does not, so the frame reaches ndostartxmit() with the MAC header unset. A driver that reads ethhdr(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 macsecencrypt()").

packetparseheaders() 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: SOCKRAW and SOCKPACKET carry a user-supplied header and SOCKDGRAM has one built by devhard_header(). Reset the MAC header unconditionally, mirroring __devqueuexmit(), 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.

Database specific
{
    "cna_assigner": "Linux",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/74xxx/CVE-2026-74667.json"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
75c65772c3d18447d62d3aca5f91b06c16cc25e4
Fixed
1e43a1d66615f411d427f9df1f46dd049d9e3681
Fixed
4057853a91fb796c4f47c7d1baf1aa085394148e
Fixed
2610ed4e86a4590234a9d70518c469751c5af231
Fixed
b47ba8fe6e1d2df8c92048de5afafd059447dc30
Fixed
284f3e7a3f1a743fdf89e304fd1f19d5ffcff46d
Fixed
971aa7d99242bbf09513e27b7a243f0b29ff23ae
Fixed
fdd4d7d52358a58e351dd9d82530c04eba8ccd7a
Fixed
c2707480cfbf19c7619acc9c089d17f20869821f

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-74667.json"

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
5.1.0
Fixed
5.10.265
Type
ECOSYSTEM
Events
Introduced
5.11.0
Fixed
5.15.216
Type
ECOSYSTEM
Events
Introduced
5.16.0
Fixed
6.1.183
Type
ECOSYSTEM
Events
Introduced
6.2.0
Fixed
6.6.152
Type
ECOSYSTEM
Events
Introduced
6.7.0
Fixed
6.12.104
Type
ECOSYSTEM
Events
Introduced
6.13.0
Fixed
6.18.45
Type
ECOSYSTEM
Events
Introduced
6.19.0
Fixed
7.1.9

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-74667.json"