CVE-2026-64322 in Linuxinformación

Resumen

por VulDB • 2026-07-25

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:

udf: validar la longitud de la tabla de reasignación (sparing table) como un conteo de entradas, no como una cantidad en bytes.

`udf_load_sparable_map()` acepta una tabla de reasignación cuando es falsa la condición:

sizeof(*st) + le16_to_cpu(st->reallocationTableLen) > sb->s_blocksize

es decir, trata `reallocationTableLen` como un número de BYTES que deben caber en el bloque. Sin embargo, la tabla se recorre como una matriz de elementos `sparingEntry` de 8 bytes:

for (i = 0; i < le16_to_cpu(st->reallocationTableLen); i++) {
struct sparingEntry *entry = &st->mapEntry[i];
... entry->origLocation ... }

en `udf_get_pblock_spar15()` y `udf_relocate_blocks()`. Por lo tanto, un valor de `reallocationTableLen` igual a N supera la comprobación siempre que sizeof(*st) + N <= blocksize, pero los consumidores indexan sizeof(*st) + N * sizeof(struct sparingEntry) bytes -- hasta ~8 veces el tamaño del bloque. En una imagen UDF manipulada ad hoc (crafted), esto constituye una lectura fuera de límites en `udf_get_pblock_spar15()`; además, `udf_relocate_blocks()` pasa la misma longitud a `udf_update_tag()`, cuya función `crc_itu_t()` lee mucho más allá del bloque, y su llamada a `memmove()` sobre `st->mapEntry[]` constituye una escritura fuera de límites.

Validar `reallocationTableLen` como el conteo de entradas que es, utilizando `struct_size()`.

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

Responsable

Linux

Reservar

2026-07-19

Divulgación

2026-07-25

Moderación

aceptado

Artículo

VDB-383117

CPE

listo

EPSS

0.00211

KEV

no

Actividades

muy bajo

Fuentes

Do you need the next level of professionalism?

Upgrade your account now!