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: 7.3 High
EPSS: < 1% Very Low
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. When a packet is transmitted through an AF_PACKET SOCK_RAW socket with the PACKET_QDISC_BYPASS flag, the skb's mac_header field remains unset, causing eth_hdr(skb) to reference memory beyond the allocated buffer. The resulting 12‑byte out‑of‑bounds read exposes kernel memory contents and the leaked data appears in the outer source/destination MAC on the wire, potentially revealing sensitive information.

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 kernel versions before the patch that injects skb_eth_hdr() into macsec_encrypt() are vulnerable.

Risk and Exploitability

The CVSS score of 7.3 indicates a moderate‑to‑high severity, while the EPSS < 1% suggests a low likelihood of exploitation. 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 17, 2026 at 20:40 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 17, 2026 at 20:40 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 19 Aug 2026 16:45:00 +0000


Tue, 18 Aug 2026 00:15:00 +0000


Mon, 17 Aug 2026 21:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-125

Mon, 17 Aug 2026 19:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-126

Mon, 17 Aug 2026 06:00:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 7.3, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:H'}


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-19T16:35:53.169Z

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-19T17:20:57.200

Link: CVE-2026-72019

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-08-15T00:00:00Z

Links: CVE-2026-72019 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-17T20:45:17Z

Weaknesses