NVD Recent CVEs

CVE-2026-64296:Linux内核中已修复以下漏洞:exfat: 在exfat_find_dir_entry()中限制uniname的推进

Linux内核中已修复以下漏洞:exfat: 在exfat_find_dir_entry()中限制uniname的推进 在exfat_find_dir_entry()中,每个TYPE_EXTEND(文件名)条目会以固定量推进输出指针,而循环守卫仅跟踪累计的名称长度: 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每个名称条目增加EXFAT_FILE_NAME_LEN(15),但name_len仅增加实际提取的长度,当名称片段包含提前出现的NUL时,该长度会更短。唯一的守卫是`name_len >= MAX_NAME_LENGTH`,因此包含许多短名称片段的特制目录会让uniname远远超出p_uniname->name[MAX_NAME_LENGTH + 3]缓冲区,而name_len仍保持较小值,导致在*(uniname+len)处发生越界读写。其兄弟提取器exfat_get_uniname_from_ext_entry()已经会在短片段处停止(提交d42334578eba("exfat: check if filename entries exceeds max filename length")中添加的同步`len != EXFAT_FILE_NAME_LEN`守卫);但exfat_find_dir_entry()从未获得等效的修复。修复方案是将每条目的写入偏移量作为计数跟踪,并在形成输出指针之前,当偏移量或偏移量加上提取长度超过MAX_NAME_LENGTH时拒绝该片段。

查看原始信源

English