{"id":"CVE-2026-43075","state":"PUBLISHED","title":"ocfs2: fix out-of-bounds write in ocfs2_write_end_inline","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nocfs2: fix out-of-bounds write in ocfs2_write_end_inline\n\nKASAN reports a use-after-free write of 4086 bytes in\nocfs2_write_end_inline, called from ocfs2_write_end_nolock during a\ncopy_file_range splice fallback on a corrupted ocfs2 filesystem mounted on\na loop device.  The actual bug is an out-of-bounds write past the inode\nblock buffer, not a true use-after-free.  The write overflows into an\nadjacent freed page, which KASAN reports as UAF.\n\nThe root cause is that ocfs2_try_to_write_inline_data trusts the on-disk\nid_count field to determine whether a write fits in inline data.  On a\ncorrupted filesystem, id_count can exceed the physical maximum inline data\ncapacity, causing writes to overflow the inode block buffer.\n\nCall trace (crash path):\n\n   vfs_copy_file_range (fs/read_write.c:1634)\n     do_splice_direct\n       splice_direct_to_actor\n         iter_file_splice_write\n           ocfs2_file_write_iter\n             generic_perform_write\n               ocfs2_write_end\n                 ocfs2_write_end_nolock (fs/ocfs2/aops.c:1949)\n                   ocfs2_write_end_inline (fs/ocfs2/aops.c:1915)\n                     memcpy_from_folio     <-- KASAN: write OOB\n\nSo add id_count upper bound check in ocfs2_validate_inode_block() to\nalongside the existing i_size check to fix it.","publishedAt":"2026-05-06T07:40:03.337Z","updatedAt":"2026-08-05T12:25:46.787Z","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":"1afc32b952335f665327a1a9001ba1b44bb76fd9","status":"affected","lessThan":"68f9cc3bbf2ae501770cea7dc0005fc9a85e48ea","versionType":"git"},{"version":"1afc32b952335f665327a1a9001ba1b44bb76fd9","status":"affected","lessThan":"2e6a254f9cedf51b75cc20b8b92e2209bfa04c3e","versionType":"git"},{"version":"1afc32b952335f665327a1a9001ba1b44bb76fd9","status":"affected","lessThan":"22df7d4de9c5cd42edf855a1de25f2106088c4c6","versionType":"git"},{"version":"1afc32b952335f665327a1a9001ba1b44bb76fd9","status":"affected","lessThan":"e2c9dc6b6e96f3585f2a1062ca3374a52db0938f","versionType":"git"},{"version":"1afc32b952335f665327a1a9001ba1b44bb76fd9","status":"affected","lessThan":"947f953978b0d9463498d548d0f054f5a75be2e9","versionType":"git"},{"version":"1afc32b952335f665327a1a9001ba1b44bb76fd9","status":"affected","lessThan":"0c1af902223b6fcedb60904ca0b551254686c7b9","versionType":"git"},{"version":"1afc32b952335f665327a1a9001ba1b44bb76fd9","status":"affected","lessThan":"69d3c69ade1e4285ab4ca48fe7acee0767e65604","versionType":"git"},{"version":"1afc32b952335f665327a1a9001ba1b44bb76fd9","status":"affected","lessThan":"7bc5da4842bed3252d26e742213741a4d0ac1b14","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/ocfs2/inode.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"2.6.24","status":"affected"},{"version":"0","status":"unaffected","lessThan":"2.6.24","versionType":"semver"},{"version":"5.10.258","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.209","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.175","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.136","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.83","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.24","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"6.19.14","status":"unaffected","lessThanOrEqual":"6.19.*","versionType":"semver"},{"version":"7.0","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/ocfs2/inode.c"]}],"references":["https://git.kernel.org/stable/c/68f9cc3bbf2ae501770cea7dc0005fc9a85e48ea","https://git.kernel.org/stable/c/2e6a254f9cedf51b75cc20b8b92e2209bfa04c3e","https://git.kernel.org/stable/c/22df7d4de9c5cd42edf855a1de25f2106088c4c6","https://git.kernel.org/stable/c/e2c9dc6b6e96f3585f2a1062ca3374a52db0938f","https://git.kernel.org/stable/c/947f953978b0d9463498d548d0f054f5a75be2e9","https://git.kernel.org/stable/c/0c1af902223b6fcedb60904ca0b551254686c7b9","https://git.kernel.org/stable/c/69d3c69ade1e4285ab4ca48fe7acee0767e65604","https://git.kernel.org/stable/c/7bc5da4842bed3252d26e742213741a4d0ac1b14"],"weaknesses":[],"ingestedAt":"2026-10-29T20:11:57.932Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/43xxx/CVE-2026-43075.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-43075","state":"PUBLISHED","datePublished":"2026-05-06T07:40:03.337Z","dateUpdated":"2026-08-05T12:25:46.787Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-05-01T14:12:55.982Z"},"containers":{"cna":{"title":"ocfs2: fix out-of-bounds write in ocfs2_write_end_inline","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nocfs2: fix out-of-bounds write in ocfs2_write_end_inline\n\nKASAN reports a use-after-free write of 4086 bytes in\nocfs2_write_end_inline, called from ocfs2_write_end_nolock during a\ncopy_file_range splice fallback on a corrupted ocfs2 filesystem mounted on\na loop device.  The actual bug is an out-of-bounds write past the inode\nblock buffer, not a true use-after-free.  The write overflows into an\nadjacent freed page, which KASAN reports as UAF.\n\nThe root cause is that ocfs2_try_to_write_inline_data trusts the on-disk\nid_count field to determine whether a write fits in inline data.  On a\ncorrupted filesystem, id_count can exceed the physical maximum inline data\ncapacity, causing writes to overflow the inode block buffer.\n\nCall trace (crash path):\n\n   vfs_copy_file_range (fs/read_write.c:1634)\n     do_splice_direct\n       splice_direct_to_actor\n         iter_file_splice_write\n           ocfs2_file_write_iter\n             generic_perform_write\n               ocfs2_write_end\n                 ocfs2_write_end_nolock (fs/ocfs2/aops.c:1949)\n                   ocfs2_write_end_inline (fs/ocfs2/aops.c:1915)\n                     memcpy_from_folio     <-- KASAN: write OOB\n\nSo add id_count upper bound check in ocfs2_validate_inode_block() to\nalongside the existing i_size check to fix it."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"1afc32b952335f665327a1a9001ba1b44bb76fd9","status":"affected","lessThan":"68f9cc3bbf2ae501770cea7dc0005fc9a85e48ea","versionType":"git"},{"version":"1afc32b952335f665327a1a9001ba1b44bb76fd9","status":"affected","lessThan":"2e6a254f9cedf51b75cc20b8b92e2209bfa04c3e","versionType":"git"},{"version":"1afc32b952335f665327a1a9001ba1b44bb76fd9","status":"affected","lessThan":"22df7d4de9c5cd42edf855a1de25f2106088c4c6","versionType":"git"},{"version":"1afc32b952335f665327a1a9001ba1b44bb76fd9","status":"affected","lessThan":"e2c9dc6b6e96f3585f2a1062ca3374a52db0938f","versionType":"git"},{"version":"1afc32b952335f665327a1a9001ba1b44bb76fd9","status":"affected","lessThan":"947f953978b0d9463498d548d0f054f5a75be2e9","versionType":"git"},{"version":"1afc32b952335f665327a1a9001ba1b44bb76fd9","status":"affected","lessThan":"0c1af902223b6fcedb60904ca0b551254686c7b9","versionType":"git"},{"version":"1afc32b952335f665327a1a9001ba1b44bb76fd9","status":"affected","lessThan":"69d3c69ade1e4285ab4ca48fe7acee0767e65604","versionType":"git"},{"version":"1afc32b952335f665327a1a9001ba1b44bb76fd9","status":"affected","lessThan":"7bc5da4842bed3252d26e742213741a4d0ac1b14","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/ocfs2/inode.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"2.6.24","status":"affected"},{"version":"0","status":"unaffected","lessThan":"2.6.24","versionType":"semver"},{"version":"5.10.258","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.209","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.175","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.136","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.83","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.24","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"6.19.14","status":"unaffected","lessThanOrEqual":"6.19.*","versionType":"semver"},{"version":"7.0","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/ocfs2/inode.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/68f9cc3bbf2ae501770cea7dc0005fc9a85e48ea"},{"url":"https://git.kernel.org/stable/c/2e6a254f9cedf51b75cc20b8b92e2209bfa04c3e"},{"url":"https://git.kernel.org/stable/c/22df7d4de9c5cd42edf855a1de25f2106088c4c6"},{"url":"https://git.kernel.org/stable/c/e2c9dc6b6e96f3585f2a1062ca3374a52db0938f"},{"url":"https://git.kernel.org/stable/c/947f953978b0d9463498d548d0f054f5a75be2e9"},{"url":"https://git.kernel.org/stable/c/0c1af902223b6fcedb60904ca0b551254686c7b9"},{"url":"https://git.kernel.org/stable/c/69d3c69ade1e4285ab4ca48fe7acee0767e65604"},{"url":"https://git.kernel.org/stable/c/7bc5da4842bed3252d26e742213741a4d0ac1b14"}],"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 - The vulnerable OCFS2 inline write path is reached through local VFS operations such as write/copy_file_range on an OCFS2 file, not by packets or physical device parsing directly.\nAC:L - Once a malformed inline-data inode with an excessive id_count is present, triggering the overflow is deterministic through ordinary writes and does not require winning a race or relying on conditions outside attacker control.\nPR:L - The write path itself has no OCFS2-specific privileged gate beyond normal file write permission, so a local user able to write the affected mounted file can trigger it. OCFS2 is not userns-mountable and crafting/mounting the corrupted image normally needs admin rights, but the highest reasonable shared-mounted-filesystem trigger requires only low local privileges.\nUI:N - After the affected OCFS2 filesystem is mounted, exploitation is triggered by the attacker's own file operation and does not require another user to act.\nS:U - The corruption occurs within kernel filesystem/buffer-cache memory and does not cross a separate security authority such as a guest/host or IOMMU boundary.\nC:H - This is attacker-controlled out-of-bounds kernel memory corruption, which can reasonably be leveraged into disclosure primitives rather than only a visible crash.\nI:H - The bug performs an out-of-bounds write from attacker-controlled file data past the inode block buffer, making high-integrity impact appropriate.\nA:H - The reported KASAN crash and the underlying kernel memory corruption can oops or panic the kernel, producing high availability impact."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-05T12:25:46.787Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.24","versionEndExcluding":"5.10.258"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.24","versionEndExcluding":"5.15.209"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.24","versionEndExcluding":"6.1.175"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.24","versionEndExcluding":"6.6.136"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.24","versionEndExcluding":"6.12.83"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.24","versionEndExcluding":"6.18.24"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.24","versionEndExcluding":"6.19.14"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.24","versionEndExcluding":"7.0"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}