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

macsec: don't read an unset MAC header in macsec_encrypt()

macsec_encrypt() reads the Ethernet header via eth_hdr(skb)
(skb->head + skb->mac_header) to memmove() the 12 source/destination MAC
bytes forward and make room for the SecTAG.

On the AF_PACKET SOCK_RAW + PACKET_QDISC_BYPASS transmit path the skb
reaches the macsec ndo_start_xmit() with the MAC header unset, so
eth_hdr(skb) resolves to skb->head + (u16)~0 and the read is out of
bounds: a 12-byte heap over-read that is also emitted on the wire as the
frame's outer source/destination MAC. KASAN reports a slab-out-of-bounds
read in macsec_start_xmit() on 6.0; on current mainline a CONFIG_DEBUG_NET
build flags it as an unset mac header in skb_mac_header().

On the TX path the L2 header is at skb->data, so use skb_eth_hdr(), added
by commit 96cc4b69581d ("macvlan: do not assume mac_header is set in
macvlan_broadcast()") for exactly this purpose.
Published: 2026-08-15
Score: n/a
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

In the Linux kernel, macsec_encrypt() incorrectly reads the Ethernet header when the MAC header is unset. During transmission via an AF_PACKET SOCK_RAW socket with the PACKET_QDISC_BYPASS flag, the skb's mac_header field is not initialized, causing eth_hdr(skb) to reference memory beyond the allocated buffer. This 12‑byte out‑of‑bounds read can expose kernel memory contents and corrupt the Ethernet frame sent on the wire, potentially revealing sensitive data.

Affected Systems

Any system running a Linux kernel that processes traffic through the AF_PACKET SOCK_RAW path with the PACKET_QDISC_BYPASS option is affected. All Linux kernel versions prior to the patch containing the fix are vulnerable.

Risk and Exploitability

The CVSS score is not provided, and the EPSS is unavailable, so the exploitation likelihood cannot be quantified precisely. The vulnerability is not listed in the CISA KEV catalog, indicating no known public exploits at this time. The attack vector would require a process with the ability to create AF_PACKET SOCK_RAW sockets and enable PACKET_QDISC_BYPASS, typically a privileged user, to trigger the out‑of‑bounds read. An attacker could use the leaked data to perform information disclosure or gather information that might aid other attacks.

Generated by OpenCVE AI on August 15, 2026 at 08:11 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade to a Linux kernel version that includes the patch modifying macsec_encrypt() to use skb_eth_hdr() when the MAC header is unset.
  • Configure network interfaces or applications to avoid using the PACKET_QDISC_BYPASS flag on AF_PACKET SOCK_RAW sockets, thereby preventing the skb mac_header from remaining unset.
  • If an immediate kernel upgrade is not possible, monitor for and restrict privileged use of AF_PACKET SOCK_RAW sockets in the environment to reduce the attack surface.

Generated by OpenCVE AI on August 15, 2026 at 08:11 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sat, 15 Aug 2026 08:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-126

Sat, 15 Aug 2026 06:00:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: macsec: don't read an unset MAC header in macsec_encrypt() macsec_encrypt() reads the Ethernet header via eth_hdr(skb) (skb->head + skb->mac_header) to memmove() the 12 source/destination MAC bytes forward and make room for the SecTAG. On the AF_PACKET SOCK_RAW + PACKET_QDISC_BYPASS transmit path the skb reaches the macsec ndo_start_xmit() with the MAC header unset, so eth_hdr(skb) resolves to skb->head + (u16)~0 and the read is out of bounds: a 12-byte heap over-read that is also emitted on the wire as the frame's outer source/destination MAC. KASAN reports a slab-out-of-bounds read in macsec_start_xmit() on 6.0; on current mainline a CONFIG_DEBUG_NET build flags it as an unset mac header in skb_mac_header(). On the TX path the L2 header is at skb->data, so use skb_eth_hdr(), added by commit 96cc4b69581d ("macvlan: do not assume mac_header is set in macvlan_broadcast()") for exactly this purpose.
Title macsec: don't read an unset MAC header in macsec_encrypt()
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-08-15T05:51:46.014Z

Reserved: 2026-08-09T03:40:39.900Z

Link: CVE-2026-72019

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-15T06:21:00.790

Modified: 2026-08-15T06:21:00.790

Link: CVE-2026-72019

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-15T09:00:06Z

Weaknesses