CVE-2026-64296CWE-787

CVE-2026-64296

High · published July 25, 2026

CVSS v3.1
7.8
EPSS
0%
Percentile
5.9
In the wild
Unconfirmed
What it is

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

exfat: bound uniname advance in exfat_find_dir_entry()

In exfat_find_dir_entry(), each TYPE_EXTEND (file name) entry advances the

output pointer by a fixed amount while the loop guard only tracks the

accumulated name length:

if (++order == 2)

uniname = p_uniname->name;

else

uniname += EXFAT_FILE_NAME_LEN;

len = exfat_extract_uni_name(ep, entry_uniname);

name_len += len;

unichar = *(uniname+len);

*(uniname+len) = 0x0;

uniname grows by EXFAT_FILE_NAME_LEN (15) per name entry, but name_len

grows only by the actual extracted length, which is shorter when a name

fragment contains an early NUL. The only guard is

`name_len >= MAX_NAME_LENGTH`, so a crafted directory with many short

name fragments lets uniname run far past the

p_uniname->name[MAX_NAME_LENGTH + 3] buffer while name_len stays small,

causing an out-of-bounds read and write at *(uniname+len).

The sibling extractor exfat_get_uniname_from_ext_entry() already stops

on a short fragment (the lockstep `len != EXFAT_FILE_NAME_LEN` guard

added in commit d42334578eba ("exfat: check if filename entries exceeds

max filename length")); exfat_find_dir_entry() never got the

equivalent. Track the per-entry write offset as a count and reject a

fragment once the offset, or the offset plus the extracted length, would

exceed MAX_NAME_LENGTH, before forming the output pointer.

The record
Technical detail
CVSS v3.1
7.8 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00169 · 5.9th percentile
Weakness
CWE-787 · Out-of-bounds Write
Published
2026-07-25T14:17Z
Affected products (7)
ProductVersionsFixed in
linux/linux_kernel≥ 5.7, < 5.10.2615.10.261
linux/linux_kernel≥ 5.11, < 5.15.2125.15.212
linux/linux_kernel≥ 5.16, < 6.1.1786.1.178
linux/linux_kernel≥ 6.2, < 6.6.1456.6.145
linux/linux_kernel≥ 6.7, < 6.12.966.12.96
linux/linux_kernel≥ 6.13, < 6.18.396.18.39
linux/linux_kernel≥ 6.19, < 7.1.47.1.4
References (8)
EPSS history
Timeline
  • 25 JUL 08:49Z
    exfat: bound uniname advance in exfat_find_dir_entry()
    cvelistv5