{"id":"CVE-2026-46094","state":"PUBLISHED","title":"ext4: fix bounds check in check_xattrs() to prevent out-of-bounds access","description":"In the Linux kernel, the following vulnerability has been resolved:\n\next4: fix bounds check in check_xattrs() to prevent out-of-bounds access\n\nThe bounds check for the next xattr entry in check_xattrs() uses\n(void *)next >= end, which allows next to point within sizeof(u32)\nbytes of end. On the next loop iteration, IS_LAST_ENTRY() reads 4\nbytes via *(__u32 *)(entry), which can overrun the valid xattr region.\n\nFor example, if next lands at end - 1, the check passes since\nnext < end, but IS_LAST_ENTRY() reads 4 bytes starting at end - 1,\naccessing 3 bytes beyond the valid region.\n\nFix this by changing the check to (void *)next + sizeof(u32) > end,\nensuring there is always enough space for the IS_LAST_ENTRY() read\non the subsequent iteration.","publishedAt":"2026-05-27T12:58:45.304Z","updatedAt":"2026-06-14T17:53:57.266Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"3478c83cf26bbffd026ae6a56bcb1fe544f0834e","status":"affected","lessThan":"ab6da97bc310db35d4e4ef5354bc3ff626b0698c","versionType":"git"},{"version":"3478c83cf26bbffd026ae6a56bcb1fe544f0834e","status":"affected","lessThan":"5a5314d2387633a272a04d1bd8727f99058e4e68","versionType":"git"},{"version":"3478c83cf26bbffd026ae6a56bcb1fe544f0834e","status":"affected","lessThan":"537e065977022aa22f2c2503e8accaf16622e0fd","versionType":"git"},{"version":"3478c83cf26bbffd026ae6a56bcb1fe544f0834e","status":"affected","lessThan":"520986722dbf869c122252123fc161c7302eab7d","versionType":"git"},{"version":"3478c83cf26bbffd026ae6a56bcb1fe544f0834e","status":"affected","lessThan":"eceafc31ea7b42c984ece10d79d505c0bb6615d5","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/ext4/xattr.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.3","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.3","versionType":"semver"},{"version":"6.6.140","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.86","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.27","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.0.4","status":"unaffected","lessThanOrEqual":"7.0.*","versionType":"semver"},{"version":"7.1","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/ext4/xattr.c"]}],"references":["https://git.kernel.org/stable/c/ab6da97bc310db35d4e4ef5354bc3ff626b0698c","https://git.kernel.org/stable/c/5a5314d2387633a272a04d1bd8727f99058e4e68","https://git.kernel.org/stable/c/537e065977022aa22f2c2503e8accaf16622e0fd","https://git.kernel.org/stable/c/520986722dbf869c122252123fc161c7302eab7d","https://git.kernel.org/stable/c/eceafc31ea7b42c984ece10d79d505c0bb6615d5"],"weaknesses":[],"ingestedAt":"2026-10-29T20:12:07.131Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/46xxx/CVE-2026-46094.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-46094","state":"PUBLISHED","datePublished":"2026-05-27T12:58:45.304Z","dateUpdated":"2026-06-14T17:53:57.266Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-05-13T15:03:33.097Z"},"containers":{"cna":{"title":"ext4: fix bounds check in check_xattrs() to prevent out-of-bounds access","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\next4: fix bounds check in check_xattrs() to prevent out-of-bounds access\n\nThe bounds check for the next xattr entry in check_xattrs() uses\n(void *)next >= end, which allows next to point within sizeof(u32)\nbytes of end. On the next loop iteration, IS_LAST_ENTRY() reads 4\nbytes via *(__u32 *)(entry), which can overrun the valid xattr region.\n\nFor example, if next lands at end - 1, the check passes since\nnext < end, but IS_LAST_ENTRY() reads 4 bytes starting at end - 1,\naccessing 3 bytes beyond the valid region.\n\nFix this by changing the check to (void *)next + sizeof(u32) > end,\nensuring there is always enough space for the IS_LAST_ENTRY() read\non the subsequent iteration."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"3478c83cf26bbffd026ae6a56bcb1fe544f0834e","status":"affected","lessThan":"ab6da97bc310db35d4e4ef5354bc3ff626b0698c","versionType":"git"},{"version":"3478c83cf26bbffd026ae6a56bcb1fe544f0834e","status":"affected","lessThan":"5a5314d2387633a272a04d1bd8727f99058e4e68","versionType":"git"},{"version":"3478c83cf26bbffd026ae6a56bcb1fe544f0834e","status":"affected","lessThan":"537e065977022aa22f2c2503e8accaf16622e0fd","versionType":"git"},{"version":"3478c83cf26bbffd026ae6a56bcb1fe544f0834e","status":"affected","lessThan":"520986722dbf869c122252123fc161c7302eab7d","versionType":"git"},{"version":"3478c83cf26bbffd026ae6a56bcb1fe544f0834e","status":"affected","lessThan":"eceafc31ea7b42c984ece10d79d505c0bb6615d5","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/ext4/xattr.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.3","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.3","versionType":"semver"},{"version":"6.6.140","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.86","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.27","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.0.4","status":"unaffected","lessThanOrEqual":"7.0.*","versionType":"semver"},{"version":"7.1","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/ext4/xattr.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/ab6da97bc310db35d4e4ef5354bc3ff626b0698c"},{"url":"https://git.kernel.org/stable/c/5a5314d2387633a272a04d1bd8727f99058e4e68"},{"url":"https://git.kernel.org/stable/c/537e065977022aa22f2c2503e8accaf16622e0fd"},{"url":"https://git.kernel.org/stable/c/520986722dbf869c122252123fc161c7302eab7d"},{"url":"https://git.kernel.org/stable/c/eceafc31ea7b42c984ece10d79d505c0bb6615d5"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-06-14T17:53:57.266Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.3","versionEndExcluding":"6.6.140"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.3","versionEndExcluding":"6.12.86"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.3","versionEndExcluding":"6.18.27"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.3","versionEndExcluding":"7.0.4"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.3","versionEndExcluding":"7.1"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}