CVE-2026-64322: udf: validate sparing table length as an entry count, not a byte count

Published Jul 25, 2026
·
Updated

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

udf: validate sparing table length as an entry count, not a byte count

udfloadsparablemap() accepts a sparing table when

sizeof(st) + le16tocpu(st->reallocationTableLen) > sb->sblocksize

is false, i.e. it treats reallocationTableLen as a number of BYTES that must fit in the block. But the table is walked as an array of 8-byte sparingEntry elements:

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

in udfgetpblockspar15() and udfrelocateblocks(). A reallocationTableLen of N therefore passes the check whenever sizeof(st) + N <= blocksize, yet the consumers index sizeof(st) + N sizeof(struct sparingEntry) bytes -- up to ~8x the block. On a crafted UDF image this is an out-of-bounds read in udfgetpblockspar15(); udfrelocateblocks() additionally feeds the same length to udfupdatetag(), whose crcitut() reads far past the block, and its memmove() through st->mapEntry[] is an out-of-bounds write.

Validate reallocationTableLen as the entry count it is, with structsize().

Affected Software

18 affected componentsFixes available
Linux Linux kernel
Microsoft azl3 kernel 6.6.144.1-1<6.6.145.2-1
6.6.145.2-1
Linux Linux kernel>=2.6.32.60<2.6.33
Linux Linux kernel>=2.6.34.14<2.6.35
Linux Linux kernel>=3.0.37<3.1
Linux Linux kernel>=3.2.23<3.3
Linux Linux kernel>=3.4.5<3.5
Linux Linux kernel>=3.5.1<5.10.261
Linux Linux kernel>=5.11<5.15.212
Linux Linux kernel>=5.16<6.1.178
Linux Linux kernel>=6.2<6.6.145
Linux Linux kernel>=6.7<6.12.96
Linux Linux kernel>=6.13<6.18.39
Linux Linux kernel>=6.19<7.1.4
Linux Linux kernel=3.5
Linux Linux kernel=3.5-rc5
Linux Linux kernel=3.5-rc6
Linux Linux kernel=3.5-rc7

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade to a fixed release to a version that resolves this vulnerability.

    Fixed in 6.6.145.2-1
  2. Compensating control

    In the UDF sparing-table handling, validate reallocationTableLen as an entry count: ensure sizeof(*st) + le16_to_cpu(st->reallocationTableLen) * sizeof(struct sparingEntry) does not exceed sb->s_blocksize before processing the table in udf_get_pblock_spar15() and udf_relocate_blocks().

Event History

Jul 25, 2026
CVE Published
via MITRE·08:49 AM
Data Sourced
via MITRE·08:49 AM
DescriptionSeverity
Data Sourced
via NVD·10:17 AM
RemedyDescriptionSeverityWeaknessAffected Software
Jul 26, 2026
Data Sourced
via Microsoft·08:11 AM
DescriptionSeverityWeaknessAffected Software

Frequently Asked Questions

1

Who is exposed to this issue?

Systems running an affected Linux kernel or the listed Microsoft azl3 kernel are exposed when they process a crafted UDF filesystem image containing a malformed sparing table.

2

What access does an attacker need to exploit it?

The CVSS vector indicates local access and low privileges are required, with no user interaction. Exploitation depends on getting the vulnerable kernel to process the crafted UDF image.

3

What can happen if the issue is exploited?

Malformed sparing-table lengths can cause out-of-bounds reads during physical-block lookup and relocation. The relocation path can also perform an out-of-bounds write through the sparing-table entry array, affecting confidentiality, integrity, and availability.

4

What should be done if patching cannot happen immediately?

Avoid processing untrusted or crafted UDF filesystem images until the available patch can be applied.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203