{"id":"CVE-2024-53147","state":"PUBLISHED","title":"exfat: fix out-of-bounds access of directory entries","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nexfat: fix out-of-bounds access of directory entries\n\nIn the case of the directory size is greater than or equal to\nthe cluster size, if start_clu becomes an EOF cluster(an invalid\ncluster) due to file system corruption, then the directory entry\nwhere ei->hint_femp.eidx hint is outside the directory, resulting\nin an out-of-bounds access, which may cause further file system\ncorruption.\n\nThis commit adds a check for start_clu, if it is an invalid cluster,\nthe file or directory will be treated as empty.","publishedAt":"2024-12-24T11:28:47.695Z","updatedAt":"2026-10-30T12:20:05.405Z","severity":{"score":7.8,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","source":"Linux"},"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"1acf1a564b6034b5af1e7fb23cb98cb3bb4f6003","status":"affected","lessThan":"98e3572505a9ec550b5296c67c4517120356c8d6","versionType":"git"},{"version":"1acf1a564b6034b5af1e7fb23cb98cb3bb4f6003","status":"affected","lessThan":"82dc96f0f4eec8afdde8467d21d1b6b989dbb20a","versionType":"git"},{"version":"1acf1a564b6034b5af1e7fb23cb98cb3bb4f6003","status":"affected","lessThan":"a0120d6463368378539ef928cf067d02372efb8c","versionType":"git"},{"version":"1acf1a564b6034b5af1e7fb23cb98cb3bb4f6003","status":"affected","lessThan":"3ddd1cb2b458ff6a193bc845f408dfff217db29e","versionType":"git"},{"version":"1acf1a564b6034b5af1e7fb23cb98cb3bb4f6003","status":"affected","lessThan":"184fa506e392eb78364d9283c961217ff2c0617b","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/exfat/namei.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"5.7","status":"affected"},{"version":"0","status":"unaffected","lessThan":"5.7","versionType":"semver"},{"version":"6.1.191","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.160","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.11.11","status":"unaffected","lessThanOrEqual":"6.11.*","versionType":"semver"},{"version":"6.12.2","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.13","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/exfat/namei.c"]}],"references":["https://git.kernel.org/stable/c/98e3572505a9ec550b5296c67c4517120356c8d6","https://git.kernel.org/stable/c/82dc96f0f4eec8afdde8467d21d1b6b989dbb20a","https://git.kernel.org/stable/c/a0120d6463368378539ef928cf067d02372efb8c","https://git.kernel.org/stable/c/3ddd1cb2b458ff6a193bc845f408dfff217db29e","https://git.kernel.org/stable/c/184fa506e392eb78364d9283c961217ff2c0617b"],"weaknesses":["CWE-125"],"ingestedAt":"2026-10-30T12:36:04.432Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2024/53xxx/CVE-2024-53147.json","commit":"db8103c5921aac81d5d90efcf3745980dafabf49","baselineCommit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2024-53147","state":"PUBLISHED","datePublished":"2024-12-24T11:28:47.695Z","dateUpdated":"2026-10-30T12:20:05.405Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2024-11-19T17:17:24.998Z"},"containers":{"cna":{"title":"exfat: fix out-of-bounds access of directory entries","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nexfat: fix out-of-bounds access of directory entries\n\nIn the case of the directory size is greater than or equal to\nthe cluster size, if start_clu becomes an EOF cluster(an invalid\ncluster) due to file system corruption, then the directory entry\nwhere ei->hint_femp.eidx hint is outside the directory, resulting\nin an out-of-bounds access, which may cause further file system\ncorruption.\n\nThis commit adds a check for start_clu, if it is an invalid cluster,\nthe file or directory will be treated as empty."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"1acf1a564b6034b5af1e7fb23cb98cb3bb4f6003","status":"affected","lessThan":"98e3572505a9ec550b5296c67c4517120356c8d6","versionType":"git"},{"version":"1acf1a564b6034b5af1e7fb23cb98cb3bb4f6003","status":"affected","lessThan":"82dc96f0f4eec8afdde8467d21d1b6b989dbb20a","versionType":"git"},{"version":"1acf1a564b6034b5af1e7fb23cb98cb3bb4f6003","status":"affected","lessThan":"a0120d6463368378539ef928cf067d02372efb8c","versionType":"git"},{"version":"1acf1a564b6034b5af1e7fb23cb98cb3bb4f6003","status":"affected","lessThan":"3ddd1cb2b458ff6a193bc845f408dfff217db29e","versionType":"git"},{"version":"1acf1a564b6034b5af1e7fb23cb98cb3bb4f6003","status":"affected","lessThan":"184fa506e392eb78364d9283c961217ff2c0617b","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/exfat/namei.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"5.7","status":"affected"},{"version":"0","status":"unaffected","lessThan":"5.7","versionType":"semver"},{"version":"6.1.191","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.160","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.11.11","status":"unaffected","lessThanOrEqual":"6.11.*","versionType":"semver"},{"version":"6.12.2","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.13","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/exfat/namei.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/98e3572505a9ec550b5296c67c4517120356c8d6"},{"url":"https://git.kernel.org/stable/c/82dc96f0f4eec8afdde8467d21d1b6b989dbb20a"},{"url":"https://git.kernel.org/stable/c/a0120d6463368378539ef928cf067d02372efb8c"},{"url":"https://git.kernel.org/stable/c/3ddd1cb2b458ff6a193bc845f408dfff217db29e"},{"url":"https://git.kernel.org/stable/c/184fa506e392eb78364d9283c961217ff2c0617b"}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","baseScore":7.8,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:L - Triggering requires a crafted exFAT image to be mounted and then a lookup/create performed in the corrupt directory, which is a local operation — an unprivileged desktop user can loop-mount an arbitrary image via udisks2, or operate on an automounted USB/SD card. There is no network-reachable path into fs/exfat.\nAC:L - The attacker fully controls the on-disk bytes: setting a directory's stream-extension dentry to size >= cluster_size with an invalid start_clu is deterministic, and the follow-up lookup+create is a plain syscall sequence with no race, timing, or memory-layout dependency.\nPR:L - Only ordinary local user privileges are needed — udisks2/automount lets an unprivileged session user get the crafted exFAT image mounted, and any low-privileged user can then run lookup/creat/mkdir in the corrupt directory to drive the out-of-bounds access. Real root in the init namespace is not required.\nUI:N - In the self-mount scenario the attacker performs every step themselves — mount the image via the automount/loop path, then issue the lookup and create — with no action by any other user required.\nS:U - The corruption and disclosure stay within the kernel's own security authority and the filesystem it manages; no VM, IOMMU, or sandbox boundary is crossed.\nC:H - Because hint_femp.eidx and the inflated directory size index clusters outside the directory, readdir/lookup read clusters belonging to other files — or arbitrary sectors of the device with the unvalidated `cur_clu += clu_offset` path — and hand that content back to userspace as directory-entry names and attributes.\nI:H - Directory entries are written into clusters owned by other files, and exfat_chain_cont_cluster() rewrites FAT entries for clusters it does not own, splicing another file's clusters into the corrupt directory; this destroys unrelated user data and filesystem metadata, exactly the \"further file system corruption\" the commit cites.\nA:H - The bogus accesses funnel into exfat_fs_error(), which calls panic() under the supported errors=panic mount option and forces the filesystem read-only under the default, and the resulting inconsistent inode (i_size claiming N+1 clusters over a one-cluster chain) yields repeated I/O failures on every subsequent operation."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-10-30T12:20:05.405Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.7","versionEndExcluding":"6.1.191"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.7","versionEndExcluding":"6.6.160"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.7","versionEndExcluding":"6.11.11"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.7","versionEndExcluding":"6.12.2"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.7","versionEndExcluding":"6.13"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"cvssV3_1":{"scope":"UNCHANGED","version":"3.1","baseScore":7.1,"attackVector":"LOCAL","baseSeverity":"HIGH","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H","integrityImpact":"HIGH","userInteraction":"NONE","attackComplexity":"LOW","availabilityImpact":"HIGH","privilegesRequired":"LOW","confidentialityImpact":"NONE"}},{"other":{"type":"ssvc","content":{"id":"CVE-2024-53147","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"version":"2.0.3","timestamp":"2025-10-01T20:09:50.211363Z"}}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-125","lang":"en","type":"CWE","description":"CWE-125 Out-of-bounds Read"}]}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2025-10-01T20:17:09.224Z"}}]}}}