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

net: thunderbolt: Fix frags[] overflow by bounding frame_count

tbnet_poll() assembles a multi-frame ThunderboltIP packet into one skb. The
first frame goes into the skb linear area and every further frame is added as
a page fragment.

skb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags,
page, hdr_size, frame_size,
TBNET_RX_PAGE_SIZE - hdr_size);

A packet of frame_count frames therefore ends up with frame_count - 1
fragments. tbnet_check_frame() only bounds the peer supplied frame_count to
TBNET_RING_SIZE / 4 (64), which is far above MAX_SKB_FRAGS (17 by default). A
peer that sends a packet of 19 or more small frames pushes nr_frags past
MAX_SKB_FRAGS, so skb_add_rx_frag() writes past skb_shinfo()->frags[] and
corrupts memory after the shared info.

Tighten the start of packet bound to MAX_SKB_FRAGS + 1 so a packet can never
produce more fragments than frags[] can hold. This matches the recent skb
frags overflow fixes in other receive paths, for example f0813bcd2d9d ("net:
wwan: t7xx: fix potential skb->frags overflow in RX path") and 600dc40554dc
("net: usb: cdc-phonet: fix skb frags[] overflow in rx_complete()").
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 Thunderbolt driver, a flaw allows an attacker to send a packet with 19 or more small frames, which causes tbnet_check_frame to accept a frame_count higher than the system can handle. The resulting skb_add_rx_frag writes past the frags[] array, corrupting memory after the skb shared info. This out‑of‑bounds write can be leveraged to corrupt kernel data structures, potentially executing arbitrary code with kernel privileges.

Affected Systems

Vulnerable systems are Linux kernel installations that include the Thunderbolt IP driver before the patch commit 2b3b4e5ff5a58ad32817824b0310e63908b12052. The issue was fixed in later kernel releases that applied this change. Any product using the generic Linux kernel and supporting Thunderbolt connectivity is impacted.

Risk and Exploitability

The vulnerability is a classic buffer overflow that leads directly to kernel memory corruption. No EPSS score is available and the vulnerability is not listed in the CISA KEV catalog, yet out‑of‑bounds writes in the kernel typically carry a very high risk of remote code execution. The attack requires a malicious Thunderbolt device or connection; once the kernel is corrupted, an attacker could gain full system privileges.

Generated by OpenCVE AI on August 15, 2026 at 09:17 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update the Linux kernel to a version that includes the patch (e.g., a release newer than commit 2b3b4e5ff5a58ad32817824b0310e63908b12052)
  • If the kernel cannot be updated immediately, disable or restrict Thunderbolt IP traffic from untrusted devices or consider disabling the Thunderbolt driver completely
  • Configure kernel logs or monitoring to alert on unexpected skb frame overrun errors, which may indicate exploitation attempts

Generated by OpenCVE AI on August 15, 2026 at 09:17 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

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

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: net: thunderbolt: Fix frags[] overflow by bounding frame_count tbnet_poll() assembles a multi-frame ThunderboltIP packet into one skb. The first frame goes into the skb linear area and every further frame is added as a page fragment. skb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags, page, hdr_size, frame_size, TBNET_RX_PAGE_SIZE - hdr_size); A packet of frame_count frames therefore ends up with frame_count - 1 fragments. tbnet_check_frame() only bounds the peer supplied frame_count to TBNET_RING_SIZE / 4 (64), which is far above MAX_SKB_FRAGS (17 by default). A peer that sends a packet of 19 or more small frames pushes nr_frags past MAX_SKB_FRAGS, so skb_add_rx_frag() writes past skb_shinfo()->frags[] and corrupts memory after the shared info. Tighten the start of packet bound to MAX_SKB_FRAGS + 1 so a packet can never produce more fragments than frags[] can hold. This matches the recent skb frags overflow fixes in other receive paths, for example f0813bcd2d9d ("net: wwan: t7xx: fix potential skb->frags overflow in RX path") and 600dc40554dc ("net: usb: cdc-phonet: fix skb frags[] overflow in rx_complete()").
Title net: thunderbolt: Fix frags[] overflow by bounding frame_count
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:53:26.718Z

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

Link: CVE-2026-72157

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

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

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

Link: CVE-2026-72157

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-15T09:30:04Z

Weaknesses

No weakness.