CVE-2026-63893: thunderbolt: property: Reject u32 wrap in tb_property_entry_valid()

Published Jul 19, 2026
·
Updated

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

thunderbolt: property: Reject u32 wrap in tbpropertyentryvalid()

entry->value is u32 and entry->length is u16; the sum is performed in u32 and wraps. A malicious XDomain peer can pick value = 0xffffff00, length = 0x100 so the sum 0x100000000 wraps to 0 and passes the > blocklen check. tbpropertyparse() then passes entry->value to parsedwdata() as a dword offset into the property block, reading attacker-directed memory far past the allocation.

For TEXT-typed entries with the "deviceid" or "vendorid" keys this lands in xd->devicename / xd->vendorname and is readable back via the per-XDomain devicename / vendorname sysfs attributes; the leak is NUL-bounded (kstrdup() stops at the first zero byte) and untargeted (the attacker picks a delta, not an absolute address). DATA-typed entries are parsed into property->value.data but not generically surfaced to userspace.

Use checkaddoverflow() so a wrapped sum is rejected.

Affected Software

1 affected component
Linux Linux kernel

Event History

Jul 19, 2026
CVE Published
via MITRE·02:55 PM
Data Sourced
via MITRE·02:55 PM
DescriptionSeverity
Data Sourced
via NVD·04:17 PM
DescriptionSeverity

Frequently Asked Questions

1

Who can exploit this issue?

An attacker needs to control a malicious XDomain peer reachable over Thunderbolt. No local privileges or user interaction are required according to the CVSS vector.

2

What information can be exposed through this flaw?

TEXT property entries using the "deviceid" or "vendorid" keys can cause data beyond the property-block allocation to be copied into the per-XDomain device_name or vendor_name fields and read through their sysfs attributes. The disclosure is limited by the first NUL byte and the attacker can select an offset delta rather than an absolute target address.

3

Are all malformed property types exposed through sysfs?

No. DATA-typed entries can also be parsed using the invalid offset, but their resulting property data is not generically surfaced to userspace.

4

How is the vulnerable input rejected by the fix?

The fix uses check_add_overflow() when adding the u32 value and u16 length, rejecting entries whose sum would wrap instead of allowing the wrapped value to pass the property-block bounds check.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203