NVD Recent CVEs
CVE-2026-64322:Linux内核已修复以下漏洞:udf:将备用表长度作为条目计数而非字节计数进行验证
Linux内核已修复以下漏洞:udf:将备用表长度作为条目计数而非字节计数进行验证。当sizeof(*st) + le16_to_cpu(st->reallocationTableLen) > sb->s_blocksize为假时,udf_load_sparable_map()会接受备用表,即它将reallocationTableLen视为必须适合块的字节数。但该表会作为8字节sparingEntry元素的数组遍历:在udf_get_pblock_spar15()和udf_relocate_blocks()中执行for (i = 0; i < le16_to_cpu(st->reallocationTableLen); i++) { struct sparingEntry *entry = &st->mapEntry[i]; ... entry->origLocation ... }。因此,只要sizeof(*st) + N <= 块大小,值为N的reallocationTableLen就会通过检查,但使用者会索引sizeof(*st) + N * sizeof(struct sparingEntry)字节——最高可达块大小的约8倍。对于构造的UDF镜像,这会导致udf_get_pblock_spar15()中出现越界读取;udf_relocate_blocks()还会将相同长度传递给udf_update_tag(),其crc_itu_t()读取会远超块边界,且通过st->mapEntry[]执行的memmove()是越界写入。使用struct_size()将reallocationTableLen作为其实际的条目计数进行验证。