CVE-2026-64322
udf: validate sparing table length as an entry count, not a byte count
Description
In the Linux kernel, the following vulnerability has been resolved: udf: validate sparing table length as an entry count, not a byte count udf_load_sparable_map() accepts a sparing table when sizeof(*st) + le16_to_cpu(st->reallocationTableLen) > sb->s_blocksize 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 < le16_to_cpu(st->reallocationTableLen); i++) { struct sparingEntry *entry = &st->mapEntry[i]; ... entry->origLocation ... } in udf_get_pblock_spar15() and udf_relocate_blocks(). 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 udf_get_pblock_spar15(); udf_relocate_blocks() additionally feeds the same length to udf_update_tag(), whose crc_itu_t() 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 struct_size().
INFO
Published Date :
July 25, 2026, 10:17 a.m.
Last Modified :
Aug. 17, 2026, 5:17 a.m.
Remotely Exploit :
No
Source :
416baaa9-dc9f-4396-8d5f-8c081fb06d67
CVSS Scores
| Score | Version | Severity | Vector | Exploitability Score | Impact Score | Source |
|---|---|---|---|---|---|---|
| CVSS 3.1 | HIGH | 416baaa9-dc9f-4396-8d5f-8c081fb06d67 |
Solution
- Validate reallocationTableLen as an entry count.
- Ensure sparing table length fits within block size.
- Apply provided patch or update to a fixed kernel version.
- Review related memory access operations.
References to Advisories, Solutions, and Tools
Here, you will find a curated list of external links that provide in-depth
information, practical solutions, and valuable tools related to
CVE-2026-64322.
CWE - Common Weakness Enumeration
While CVE identifies
specific instances of vulnerabilities, CWE categorizes the common flaws or
weaknesses that can lead to vulnerabilities. CVE-2026-64322 is
associated with the following CWEs:
Common Attack Pattern Enumeration and Classification (CAPEC)
Common Attack Pattern Enumeration and Classification
(CAPEC)
stores attack patterns, which are descriptions of the common attributes and
approaches employed by adversaries to exploit the CVE-2026-64322
weaknesses.
We scan GitHub repositories to detect new proof-of-concept exploits. Following list is a collection of public exploits and proof-of-concepts, which have been published on GitHub (sorted by the most recently updated).
Results are limited to the first 15 repositories due to potential performance issues.
The following list is the news that have been mention
CVE-2026-64322 vulnerability anywhere in the article.
The following table lists the changes that have been made to the
CVE-2026-64322 vulnerability over time.
Vulnerability history details can be useful for understanding the evolution of a vulnerability, and for identifying the most recent changes that may impact the vulnerability's severity, exploitability, or other characteristics.
-
CVE Modified by 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Aug. 17, 2026
Action Type Old Value New Value Changed Affected [{'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': '1df2ae31c724e57be9d7ac00d78db8a5dabdd050', 'lessThan': 'eeb0f3e193f8e523d03e4c9e084f6b4875f50e8e', 'versionType': 'git'}, {'status': 'affected', 'version': '1df2ae31c724e57be9d7ac00d78db8a5dabdd050', 'lessThan': '0a9b79a951cfd70a9d31ca01ae2d08a20bb730e9', 'versionType': 'git'}, {'status': 'affected', 'version': '1df2ae31c724e57be9d7ac00d78db8a5dabdd050', 'lessThan': '2d726135099313958f8975532a2e15322ff150ce', 'versionType': 'git'}, {'status': 'affected', 'version': '1df2ae31c724e57be9d7ac00d78db8a5dabdd050', 'lessThan': '7285276aa50d2839afb5957ffd491ad282dc8f72', 'versionType': 'git'}, {'status': 'affected', 'version': '1df2ae31c724e57be9d7ac00d78db8a5dabdd050', 'lessThan': '2a219acb2ce674d99bbd1b7b35ed8c384dac7200', 'versionType': 'git'}, {'status': 'affected', 'version': '1df2ae31c724e57be9d7ac00d78db8a5dabdd050', 'lessThan': '04f4599a9efb90992d072a814960edf0cd62805d', 'versionType': 'git'}, {'status': 'affected', 'version': '1df2ae31c724e57be9d7ac00d78db8a5dabdd050', 'lessThan': '7f7774b9da0ef17b87bfa238cf966ad0b3376150', 'versionType': 'git'}, {'status': 'affected', 'version': '1df2ae31c724e57be9d7ac00d78db8a5dabdd050', 'lessThan': '3ec997bd5508e9b25210b5bbec89031629cdb093', 'versionType': 'git'}, {'status': 'affected', 'version': 'e240873cb4a9fd18de60a817100a96fe670d4359', 'versionType': 'git'}, {'status': 'affected', 'version': '9ae30e324a96d0328a575329d7a95a09b3318601', 'versionType': 'git'}, {'status': 'affected', 'version': 'b1c5701ad6b3e5d21d16f65475651cfaaa41e7aa', 'versionType': 'git'}, {'status': 'affected', 'version': 'a9f1af04f086656246f30354fb4564ce3b08c4a0', 'versionType': 'git'}, {'status': 'affected', 'version': '4836ee563d65bb492f907cbe267a5761b9693e4d', 'versionType': 'git'}, {'status': 'affected', 'version': '2.6.32.60', 'lessThan': '2.6.33', 'versionType': 'semver'}, {'status': 'affected', 'version': '2.6.34.14', 'lessThan': '2.6.35', 'versionType': 'semver'}, {'status': 'affected', 'version': '3.0.37', 'lessThan': '3.1', 'versionType': 'semver'}, {'status': 'affected', 'version': '3.2.23', 'lessThan': '3.3', 'versionType': 'semver'}, {'status': 'affected', 'version': '3.4.5', 'lessThan': '3.5', 'versionType': 'semver'}], 'programFiles': ['fs/udf/super.c'], 'defaultStatus': 'unaffected'}, {'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': '3.5'}, {'status': 'unaffected', 'version': '0', 'lessThan': '3.5', 'versionType': 'semver'}, {'status': 'unaffected', 'version': '5.10.261', 'versionType': 'semver', 'lessThanOrEqual': '5.10.*'}, {'status': 'unaffected', 'version': '5.15.212', 'versionType': 'semver', 'lessThanOrEqual': '5.15.*'}, {'status': 'unaffected', 'version': '6.1.178', 'versionType': 'semver', 'lessThanOrEqual': '6.1.*'}, {'status': 'unaffected', 'version': '6.6.145', 'versionType': 'semver', 'lessThanOrEqual': '6.6.*'}, {'status': 'unaffected', 'version': '6.12.96', 'versionType': 'semver', 'lessThanOrEqual': '6.12.*'}, {'status': 'unaffected', 'version': '6.18.39', 'versionType': 'semver', 'lessThanOrEqual': '6.18.*'}, {'status': 'unaffected', 'version': '7.1.4', 'versionType': 'semver', 'lessThanOrEqual': '7.1.*'}, {'status': 'unaffected', 'version': '7.2-rc1', 'versionType': 'original_commit_for_fix', 'lessThanOrEqual': '*'}], 'programFiles': ['fs/udf/super.c'], 'defaultStatus': 'affected'}] [{'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': '1df2ae31c724e57be9d7ac00d78db8a5dabdd050', 'lessThan': 'eeb0f3e193f8e523d03e4c9e084f6b4875f50e8e', 'versionType': 'git'}, {'status': 'affected', 'version': '1df2ae31c724e57be9d7ac00d78db8a5dabdd050', 'lessThan': '0a9b79a951cfd70a9d31ca01ae2d08a20bb730e9', 'versionType': 'git'}, {'status': 'affected', 'version': '1df2ae31c724e57be9d7ac00d78db8a5dabdd050', 'lessThan': '2d726135099313958f8975532a2e15322ff150ce', 'versionType': 'git'}, {'status': 'affected', 'version': '1df2ae31c724e57be9d7ac00d78db8a5dabdd050', 'lessThan': '7285276aa50d2839afb5957ffd491ad282dc8f72', 'versionType': 'git'}, {'status': 'affected', 'version': '1df2ae31c724e57be9d7ac00d78db8a5dabdd050', 'lessThan': '2a219acb2ce674d99bbd1b7b35ed8c384dac7200', 'versionType': 'git'}, {'status': 'affected', 'version': '1df2ae31c724e57be9d7ac00d78db8a5dabdd050', 'lessThan': '04f4599a9efb90992d072a814960edf0cd62805d', 'versionType': 'git'}, {'status': 'affected', 'version': '1df2ae31c724e57be9d7ac00d78db8a5dabdd050', 'lessThan': '7f7774b9da0ef17b87bfa238cf966ad0b3376150', 'versionType': 'git'}, {'status': 'affected', 'version': '1df2ae31c724e57be9d7ac00d78db8a5dabdd050', 'lessThan': '3ec997bd5508e9b25210b5bbec89031629cdb093', 'versionType': 'git'}, {'status': 'affected', 'version': 'e240873cb4a9fd18de60a817100a96fe670d4359', 'versionType': 'git'}, {'status': 'affected', 'version': '9ae30e324a96d0328a575329d7a95a09b3318601', 'versionType': 'git'}, {'status': 'affected', 'version': 'b1c5701ad6b3e5d21d16f65475651cfaaa41e7aa', 'versionType': 'git'}, {'status': 'affected', 'version': 'a9f1af04f086656246f30354fb4564ce3b08c4a0', 'versionType': 'git'}, {'status': 'affected', 'version': '4836ee563d65bb492f907cbe267a5761b9693e4d', 'versionType': 'git'}, {'status': 'affected', 'version': '2.6.32.60', 'lessThan': '2.6.33', 'versionType': 'semver'}, {'status': 'affected', 'version': '2.6.34.14', 'lessThan': '2.6.35', 'versionType': 'semver'}, {'status': 'affected', 'version': '3.0.37', 'lessThan': '3.1', 'versionType': 'semver'}, {'status': 'affected', 'version': '3.2.23', 'lessThan': '3.3', 'versionType': 'semver'}, {'status': 'affected', 'version': '3.4.5', 'lessThan': '3.5', 'versionType': 'semver'}], 'programFiles': ['fs/udf/super.c'], 'defaultStatus': 'unaffected'}, {'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': '3.5'}, {'status': 'unaffected', 'version': '0', 'lessThan': '3.5', 'versionType': 'semver'}, {'status': 'unaffected', 'version': '5.10.261', 'versionType': 'semver', 'lessThanOrEqual': '5.10.*'}, {'status': 'unaffected', 'version': '5.15.212', 'versionType': 'semver', 'lessThanOrEqual': '5.15.*'}, {'status': 'unaffected', 'version': '6.1.178', 'versionType': 'semver', 'lessThanOrEqual': '6.1.*'}, {'status': 'unaffected', 'version': '6.6.145', 'versionType': 'semver', 'lessThanOrEqual': '6.6.*'}, {'status': 'unaffected', 'version': '6.12.96', 'versionType': 'semver', 'lessThanOrEqual': '6.12.*'}, {'status': 'unaffected', 'version': '6.18.39', 'versionType': 'semver', 'lessThanOrEqual': '6.18.*'}, {'status': 'unaffected', 'version': '7.1.4', 'versionType': 'semver', 'lessThanOrEqual': '7.1.*'}, {'status': 'unaffected', 'version': '7.2', 'versionType': 'original_commit_for_fix', 'lessThanOrEqual': '*'}], 'programFiles': ['fs/udf/super.c'], 'defaultStatus': 'affected'}] -
CVE Modified by 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Jul. 27, 2026
Action Type Old Value New Value Added CVSS V3.1 AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H -
New CVE Received by 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Jul. 25, 2026
Action Type Old Value New Value Added Affected [{'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': '1df2ae31c724e57be9d7ac00d78db8a5dabdd050', 'lessThan': 'eeb0f3e193f8e523d03e4c9e084f6b4875f50e8e', 'versionType': 'git'}, {'status': 'affected', 'version': '1df2ae31c724e57be9d7ac00d78db8a5dabdd050', 'lessThan': '0a9b79a951cfd70a9d31ca01ae2d08a20bb730e9', 'versionType': 'git'}, {'status': 'affected', 'version': '1df2ae31c724e57be9d7ac00d78db8a5dabdd050', 'lessThan': '2d726135099313958f8975532a2e15322ff150ce', 'versionType': 'git'}, {'status': 'affected', 'version': '1df2ae31c724e57be9d7ac00d78db8a5dabdd050', 'lessThan': '7285276aa50d2839afb5957ffd491ad282dc8f72', 'versionType': 'git'}, {'status': 'affected', 'version': '1df2ae31c724e57be9d7ac00d78db8a5dabdd050', 'lessThan': '2a219acb2ce674d99bbd1b7b35ed8c384dac7200', 'versionType': 'git'}, {'status': 'affected', 'version': '1df2ae31c724e57be9d7ac00d78db8a5dabdd050', 'lessThan': '04f4599a9efb90992d072a814960edf0cd62805d', 'versionType': 'git'}, {'status': 'affected', 'version': '1df2ae31c724e57be9d7ac00d78db8a5dabdd050', 'lessThan': '7f7774b9da0ef17b87bfa238cf966ad0b3376150', 'versionType': 'git'}, {'status': 'affected', 'version': '1df2ae31c724e57be9d7ac00d78db8a5dabdd050', 'lessThan': '3ec997bd5508e9b25210b5bbec89031629cdb093', 'versionType': 'git'}, {'status': 'affected', 'version': 'e240873cb4a9fd18de60a817100a96fe670d4359', 'versionType': 'git'}, {'status': 'affected', 'version': '9ae30e324a96d0328a575329d7a95a09b3318601', 'versionType': 'git'}, {'status': 'affected', 'version': 'b1c5701ad6b3e5d21d16f65475651cfaaa41e7aa', 'versionType': 'git'}, {'status': 'affected', 'version': 'a9f1af04f086656246f30354fb4564ce3b08c4a0', 'versionType': 'git'}, {'status': 'affected', 'version': '4836ee563d65bb492f907cbe267a5761b9693e4d', 'versionType': 'git'}, {'status': 'affected', 'version': '2.6.32.60', 'lessThan': '2.6.33', 'versionType': 'semver'}, {'status': 'affected', 'version': '2.6.34.14', 'lessThan': '2.6.35', 'versionType': 'semver'}, {'status': 'affected', 'version': '3.0.37', 'lessThan': '3.1', 'versionType': 'semver'}, {'status': 'affected', 'version': '3.2.23', 'lessThan': '3.3', 'versionType': 'semver'}, {'status': 'affected', 'version': '3.4.5', 'lessThan': '3.5', 'versionType': 'semver'}], 'programFiles': ['fs/udf/super.c'], 'defaultStatus': 'unaffected'}, {'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': '3.5'}, {'status': 'unaffected', 'version': '0', 'lessThan': '3.5', 'versionType': 'semver'}, {'status': 'unaffected', 'version': '5.10.261', 'versionType': 'semver', 'lessThanOrEqual': '5.10.*'}, {'status': 'unaffected', 'version': '5.15.212', 'versionType': 'semver', 'lessThanOrEqual': '5.15.*'}, {'status': 'unaffected', 'version': '6.1.178', 'versionType': 'semver', 'lessThanOrEqual': '6.1.*'}, {'status': 'unaffected', 'version': '6.6.145', 'versionType': 'semver', 'lessThanOrEqual': '6.6.*'}, {'status': 'unaffected', 'version': '6.12.96', 'versionType': 'semver', 'lessThanOrEqual': '6.12.*'}, {'status': 'unaffected', 'version': '6.18.39', 'versionType': 'semver', 'lessThanOrEqual': '6.18.*'}, {'status': 'unaffected', 'version': '7.1.4', 'versionType': 'semver', 'lessThanOrEqual': '7.1.*'}, {'status': 'unaffected', 'version': '7.2-rc1', 'versionType': 'original_commit_for_fix', 'lessThanOrEqual': '*'}], 'programFiles': ['fs/udf/super.c'], 'defaultStatus': 'affected'}] Added Description In the Linux kernel, the following vulnerability has been resolved: udf: validate sparing table length as an entry count, not a byte count udf_load_sparable_map() accepts a sparing table when sizeof(*st) + le16_to_cpu(st->reallocationTableLen) > sb->s_blocksize 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 < le16_to_cpu(st->reallocationTableLen); i++) { struct sparingEntry *entry = &st->mapEntry[i]; ... entry->origLocation ... } in udf_get_pblock_spar15() and udf_relocate_blocks(). 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 udf_get_pblock_spar15(); udf_relocate_blocks() additionally feeds the same length to udf_update_tag(), whose crc_itu_t() 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 struct_size(). Added Reference https://git.kernel.org/stable/c/04f4599a9efb90992d072a814960edf0cd62805d Added Reference https://git.kernel.org/stable/c/0a9b79a951cfd70a9d31ca01ae2d08a20bb730e9 Added Reference https://git.kernel.org/stable/c/2a219acb2ce674d99bbd1b7b35ed8c384dac7200 Added Reference https://git.kernel.org/stable/c/2d726135099313958f8975532a2e15322ff150ce Added Reference https://git.kernel.org/stable/c/3ec997bd5508e9b25210b5bbec89031629cdb093 Added Reference https://git.kernel.org/stable/c/7285276aa50d2839afb5957ffd491ad282dc8f72 Added Reference https://git.kernel.org/stable/c/7f7774b9da0ef17b87bfa238cf966ad0b3376150 Added Reference https://git.kernel.org/stable/c/eeb0f3e193f8e523d03e4c9e084f6b4875f50e8e