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

thunderbolt: property: Reject dir_len < 4 to prevent size_t underflow

On the non-root path, __tb_property_parse_dir() takes dir_len from
entry->length (u16 widened to size_t). Two distinct OOB conditions
follow when entry->length < 4:

1. The non-root path begins with kmemdup(&block[dir_offset],
sizeof(*dir->uuid), ...) which always reads 4 dwords from
dir_offset. tb_property_entry_valid() only enforces
dir_offset + entry->length <= block_len, so a crafted entry
with dir_offset close to the end of the property block and
entry->length in 0..3 passes that gate but lets the UUID copy
run off the block (e.g. dir_offset = 497, dir_len = 3 in a
500-dword block reads block[497..501]).

2. After the kmemdup, content_len = dir_len - 4 underflows size_t
to ~SIZE_MAX, nentries becomes SIZE_MAX / 4, and the entry
walk runs OOB on each iteration until an entry fails
validation or the kernel oopses on an unmapped page.

Reject dir_len < 4 on the non-root path *before* the UUID kmemdup,
which closes both holes.

Also move INIT_LIST_HEAD(&dir->properties) up to immediately after
the dir allocation so the new error-return path (and the existing
uuid-alloc failure path) calling tb_property_free_dir() sees a
walkable list rather than the zero-initialized NULL next/prev that
list_for_each_entry_safe() would oops on.
Published: 2026-07-19
Score: 5.5 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The kernel’s Thunderbolt driver mishandles property entries whose declared length (dir_len) is less than four bytes. When a non‑root attacker crafts such an entry, the driver blindly copies four 32‑bit dwords and then computes a negative content length that underflows to a huge size_t value. This causes out‑of‑bounds reads and can trigger a kernel oops, effectively crashing the system. The impact is a denial‑of‑service condition at kernel level, potentially allowing an attacker to disrupt system operation. The issue stems from a size_t underflow and improper input validation (CWE‑125).

Affected Systems

All Linux kernels that lack the patch rejecting dir_len values below four on the non‑root path are affected. The flaw resides in the Thunderbolt driver prior to the commit that added the fix. No specific vendor or version numbers are listed, so any system running a pre‑patch kernel build is potentially vulnerable. Based on the lack of detailed version information, it is inferred that all such kernels are underflow in the Thunderbolt subsystem of the Linux kernel allows a non‑root user to craft a property with a length less than four. The kernel copies four dwords regardless of the reported length and then computes a negative content length that underflows to a very large size_t value. This causes out‑of‑bounds reads and may trigger a kernel oops, resulting in a denial‑of‑service condition in kernel space.

Risk and Exploitability

The flaw requires only a local non‑root attacker and operates in user space before the Thunderbolt property is fully processed. The CVSS score of 5.5 classifies the vulnerability as medium severity. The EPSS score of less than 1% and its absence from CISA's KEV catalog indicate a low likelihood of current exploitation. Nevertheless, a kernel oops can still cause a denial‑of‑service and may serve as an escalation vector for further compromise.

Generated by OpenCVE AI on August 4, 2026 at 06:53 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply the kernel patch that rejects short property lengths in the Thunderbolt driver (commits 37abc4504fa19d8f9f1e87792e8a2 and related).
  • Reboot the system to ensure the updated kernel is active.
  • If an immediate kernel update is not possible, disable Thunderbolt support by removing or blacklisting the driver module, or by disabling Thunderbolt devices in the BIOS.

Generated by OpenCVE AI on August 4, 2026 at 06:53 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Ubuntu USN Ubuntu USN USN-8593-1 Linux kernel vulnerabilities
Ubuntu USN Ubuntu USN USN-8603-1 Linux kernel (Azure) vulnerabilities
Ubuntu USN Ubuntu USN USN-8618-1 Linux kernel vulnerabilities
History

Wed, 29 Jul 2026 02:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-120
CWE-191
CWE-20

Wed, 22 Jul 2026 19:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-120
CWE-191
CWE-20

Wed, 22 Jul 2026 00:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-125
References
Metrics threat_severity

None

cvssV3_1

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

threat_severity

Moderate


Sun, 19 Jul 2026 15:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: thunderbolt: property: Reject dir_len < 4 to prevent size_t underflow On the non-root path, __tb_property_parse_dir() takes dir_len from entry->length (u16 widened to size_t). Two distinct OOB conditions follow when entry->length < 4: 1. The non-root path begins with kmemdup(&block[dir_offset], sizeof(*dir->uuid), ...) which always reads 4 dwords from dir_offset. tb_property_entry_valid() only enforces dir_offset + entry->length <= block_len, so a crafted entry with dir_offset close to the end of the property block and entry->length in 0..3 passes that gate but lets the UUID copy run off the block (e.g. dir_offset = 497, dir_len = 3 in a 500-dword block reads block[497..501]). 2. After the kmemdup, content_len = dir_len - 4 underflows size_t to ~SIZE_MAX, nentries becomes SIZE_MAX / 4, and the entry walk runs OOB on each iteration until an entry fails validation or the kernel oopses on an unmapped page. Reject dir_len < 4 on the non-root path *before* the UUID kmemdup, which closes both holes. Also move INIT_LIST_HEAD(&dir->properties) up to immediately after the dir allocation so the new error-return path (and the existing uuid-alloc failure path) calling tb_property_free_dir() sees a walkable list rather than the zero-initialized NULL next/prev that list_for_each_entry_safe() would oops on.
Title thunderbolt: property: Reject dir_len < 4 to prevent size_t underflow
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-07-19T14:55:03.568Z

Reserved: 2026-07-19T07:54:57.019Z

Link: CVE-2026-63892

cve-icon Vulnrichment

No data.

cve-icon NVD

No data.

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-07-19T00:00:00Z

Links: CVE-2026-63892 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-04T07:00:05Z

Weaknesses