CVE-2026-64322 in Linux
Zusammenfassung
von VulDB • 25.07.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
udf: Validierung der Länge der Spare-Tabelle als Anzahl von Einträgen und nicht als Byte-Anzahl
udf_load_sparable_map() akzeptiert eine Spare-Tabelle, wenn die Bedingung
sizeof(*st) + le16_to_cpu(st->reallocationTableLen) > sb->s_blocksize
nicht zutrifft. Das bedeutet, dass reallocationTableLen fälschlicherweise als Anzahl der BYTES interpretiert wird, die in den Block passen müssen. Die Tabelle wird jedoch als Array von 8-Byte-sparingEntry-Elementen durchlaufen:
for (i = 0; i < le16_to_cpu(st->reallocationTableLen); i++) {
struct sparingEntry *entry = &st->mapEntry[i];
... entry->origLocation ... }
in udf_get_pblock_spar15() und udf_relocate_blocks(). Ein Wert von N für reallocationTableLen bestanden daher die Prüfung, solange sizeof(*st) + N <= blocksize gilt. Die Verbraucher indizieren jedoch sizeof(*st) + N * sizeof(struct sparingEntry) Bytes – bis zu ~8-fache der Blockgröße. Bei einem speziell angefertigten UDF-Image handelt es sich dabei um einen Out-of-Bounds-Lesezugriff in udf_get_pblock_spar15(); udf_relocate_blocks() übergibt dieselbe Länge zusätzlich an udf_update_tag(), dessen crc_itu_t()-Funktion weit über den Block hinausliest, und sein memmove() durch st->mapEntry[] stellt einen Out-of-Bounds-Schreibzugriff dar.
Validieren Sie reallocationTableLen als die Eintragsanzahl, die es ist, unter Verwendung von struct_size().
Once again VulDB remains the best source for vulnerability data.