{"id":"CVE-2025-38337","state":"PUBLISHED","title":"jbd2: fix data-race and null-ptr-deref in jbd2_journal_dirty_metadata()","description":"In the Linux kernel, the following vulnerability has been resolved:\n\njbd2: fix data-race and null-ptr-deref in jbd2_journal_dirty_metadata()\n\nSince handle->h_transaction may be a NULL pointer, so we should change it\nto call is_handle_aborted(handle) first before dereferencing it.\n\nAnd the following data-race was reported in my fuzzer:\n\n==================================================================\nBUG: KCSAN: data-race in jbd2_journal_dirty_metadata / jbd2_journal_dirty_metadata\n\nwrite to 0xffff888011024104 of 4 bytes by task 10881 on cpu 1:\n jbd2_journal_dirty_metadata+0x2a5/0x770 fs/jbd2/transaction.c:1556\n __ext4_handle_dirty_metadata+0xe7/0x4b0 fs/ext4/ext4_jbd2.c:358\n ext4_do_update_inode fs/ext4/inode.c:5220 [inline]\n ext4_mark_iloc_dirty+0x32c/0xd50 fs/ext4/inode.c:5869\n __ext4_mark_inode_dirty+0xe1/0x450 fs/ext4/inode.c:6074\n ext4_dirty_inode+0x98/0xc0 fs/ext4/inode.c:6103\n....\n\nread to 0xffff888011024104 of 4 bytes by task 10880 on cpu 0:\n jbd2_journal_dirty_metadata+0xf2/0x770 fs/jbd2/transaction.c:1512\n __ext4_handle_dirty_metadata+0xe7/0x4b0 fs/ext4/ext4_jbd2.c:358\n ext4_do_update_inode fs/ext4/inode.c:5220 [inline]\n ext4_mark_iloc_dirty+0x32c/0xd50 fs/ext4/inode.c:5869\n __ext4_mark_inode_dirty+0xe1/0x450 fs/ext4/inode.c:6074\n ext4_dirty_inode+0x98/0xc0 fs/ext4/inode.c:6103\n....\n\nvalue changed: 0x00000000 -> 0x00000001\n==================================================================\n\nThis issue is caused by missing data-race annotation for jh->b_modified.\nTherefore, the missing annotation needs to be added.","publishedAt":"2025-07-10T08:15:08.396Z","updatedAt":"2026-05-11T21:26:02.409Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"6e06ae88edae77379bef7c0cb7d3c2dd88676867","status":"affected","lessThan":"5c1a34ff5b0bfdfd2f9343aa9b08d25df618bac5","versionType":"git"},{"version":"6e06ae88edae77379bef7c0cb7d3c2dd88676867","status":"affected","lessThan":"ec669e5bf409f16e464bfad75f0ba039a45de29a","versionType":"git"},{"version":"6e06ae88edae77379bef7c0cb7d3c2dd88676867","status":"affected","lessThan":"43d5e3bb5f1dcd91e30238ea0b59a5f77063f84e","versionType":"git"},{"version":"6e06ae88edae77379bef7c0cb7d3c2dd88676867","status":"affected","lessThan":"23361b479f2700c00960d3ae9cdc8ededa762d47","versionType":"git"},{"version":"6e06ae88edae77379bef7c0cb7d3c2dd88676867","status":"affected","lessThan":"2e7c64d7a92c031d016f11c8e8cb05131ab7b75a","versionType":"git"},{"version":"6e06ae88edae77379bef7c0cb7d3c2dd88676867","status":"affected","lessThan":"f78b38af3540b4875147b7b884ee11a27b3dbf4c","versionType":"git"},{"version":"6e06ae88edae77379bef7c0cb7d3c2dd88676867","status":"affected","lessThan":"a377996d714afb8d4d5f4906336f78510039da29","versionType":"git"},{"version":"6e06ae88edae77379bef7c0cb7d3c2dd88676867","status":"affected","lessThan":"af98b0157adf6504fade79b3e6cb260c4ff68e37","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/jbd2/transaction.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.3","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.3","versionType":"semver"},{"version":"5.4.295","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.239","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.186","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.142","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.95","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.35","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.15.4","status":"unaffected","lessThanOrEqual":"6.15.*","versionType":"semver"},{"version":"6.16","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/jbd2/transaction.c"]}],"references":["https://git.kernel.org/stable/c/5c1a34ff5b0bfdfd2f9343aa9b08d25df618bac5","https://git.kernel.org/stable/c/ec669e5bf409f16e464bfad75f0ba039a45de29a","https://git.kernel.org/stable/c/43d5e3bb5f1dcd91e30238ea0b59a5f77063f84e","https://git.kernel.org/stable/c/23361b479f2700c00960d3ae9cdc8ededa762d47","https://git.kernel.org/stable/c/2e7c64d7a92c031d016f11c8e8cb05131ab7b75a","https://git.kernel.org/stable/c/f78b38af3540b4875147b7b884ee11a27b3dbf4c","https://git.kernel.org/stable/c/a377996d714afb8d4d5f4906336f78510039da29","https://git.kernel.org/stable/c/af98b0157adf6504fade79b3e6cb260c4ff68e37","https://lists.debian.org/debian-lts-announce/2025/10/msg00008.html","https://lists.debian.org/debian-lts-announce/2025/10/msg00007.html"],"weaknesses":[],"ingestedAt":"2026-10-29T20:09:09.358Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2025/38xxx/CVE-2025-38337.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2025-38337","state":"PUBLISHED","datePublished":"2025-07-10T08:15:08.396Z","dateUpdated":"2026-05-11T21:26:02.409Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2025-04-16T04:51:24.005Z"},"containers":{"cna":{"title":"jbd2: fix data-race and null-ptr-deref in jbd2_journal_dirty_metadata()","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\njbd2: fix data-race and null-ptr-deref in jbd2_journal_dirty_metadata()\n\nSince handle->h_transaction may be a NULL pointer, so we should change it\nto call is_handle_aborted(handle) first before dereferencing it.\n\nAnd the following data-race was reported in my fuzzer:\n\n==================================================================\nBUG: KCSAN: data-race in jbd2_journal_dirty_metadata / jbd2_journal_dirty_metadata\n\nwrite to 0xffff888011024104 of 4 bytes by task 10881 on cpu 1:\n jbd2_journal_dirty_metadata+0x2a5/0x770 fs/jbd2/transaction.c:1556\n __ext4_handle_dirty_metadata+0xe7/0x4b0 fs/ext4/ext4_jbd2.c:358\n ext4_do_update_inode fs/ext4/inode.c:5220 [inline]\n ext4_mark_iloc_dirty+0x32c/0xd50 fs/ext4/inode.c:5869\n __ext4_mark_inode_dirty+0xe1/0x450 fs/ext4/inode.c:6074\n ext4_dirty_inode+0x98/0xc0 fs/ext4/inode.c:6103\n....\n\nread to 0xffff888011024104 of 4 bytes by task 10880 on cpu 0:\n jbd2_journal_dirty_metadata+0xf2/0x770 fs/jbd2/transaction.c:1512\n __ext4_handle_dirty_metadata+0xe7/0x4b0 fs/ext4/ext4_jbd2.c:358\n ext4_do_update_inode fs/ext4/inode.c:5220 [inline]\n ext4_mark_iloc_dirty+0x32c/0xd50 fs/ext4/inode.c:5869\n __ext4_mark_inode_dirty+0xe1/0x450 fs/ext4/inode.c:6074\n ext4_dirty_inode+0x98/0xc0 fs/ext4/inode.c:6103\n....\n\nvalue changed: 0x00000000 -> 0x00000001\n==================================================================\n\nThis issue is caused by missing data-race annotation for jh->b_modified.\nTherefore, the missing annotation needs to be added."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"6e06ae88edae77379bef7c0cb7d3c2dd88676867","status":"affected","lessThan":"5c1a34ff5b0bfdfd2f9343aa9b08d25df618bac5","versionType":"git"},{"version":"6e06ae88edae77379bef7c0cb7d3c2dd88676867","status":"affected","lessThan":"ec669e5bf409f16e464bfad75f0ba039a45de29a","versionType":"git"},{"version":"6e06ae88edae77379bef7c0cb7d3c2dd88676867","status":"affected","lessThan":"43d5e3bb5f1dcd91e30238ea0b59a5f77063f84e","versionType":"git"},{"version":"6e06ae88edae77379bef7c0cb7d3c2dd88676867","status":"affected","lessThan":"23361b479f2700c00960d3ae9cdc8ededa762d47","versionType":"git"},{"version":"6e06ae88edae77379bef7c0cb7d3c2dd88676867","status":"affected","lessThan":"2e7c64d7a92c031d016f11c8e8cb05131ab7b75a","versionType":"git"},{"version":"6e06ae88edae77379bef7c0cb7d3c2dd88676867","status":"affected","lessThan":"f78b38af3540b4875147b7b884ee11a27b3dbf4c","versionType":"git"},{"version":"6e06ae88edae77379bef7c0cb7d3c2dd88676867","status":"affected","lessThan":"a377996d714afb8d4d5f4906336f78510039da29","versionType":"git"},{"version":"6e06ae88edae77379bef7c0cb7d3c2dd88676867","status":"affected","lessThan":"af98b0157adf6504fade79b3e6cb260c4ff68e37","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/jbd2/transaction.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.3","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.3","versionType":"semver"},{"version":"5.4.295","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.239","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.186","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.142","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.95","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.35","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.15.4","status":"unaffected","lessThanOrEqual":"6.15.*","versionType":"semver"},{"version":"6.16","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/jbd2/transaction.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/5c1a34ff5b0bfdfd2f9343aa9b08d25df618bac5"},{"url":"https://git.kernel.org/stable/c/ec669e5bf409f16e464bfad75f0ba039a45de29a"},{"url":"https://git.kernel.org/stable/c/43d5e3bb5f1dcd91e30238ea0b59a5f77063f84e"},{"url":"https://git.kernel.org/stable/c/23361b479f2700c00960d3ae9cdc8ededa762d47"},{"url":"https://git.kernel.org/stable/c/2e7c64d7a92c031d016f11c8e8cb05131ab7b75a"},{"url":"https://git.kernel.org/stable/c/f78b38af3540b4875147b7b884ee11a27b3dbf4c"},{"url":"https://git.kernel.org/stable/c/a377996d714afb8d4d5f4906336f78510039da29"},{"url":"https://git.kernel.org/stable/c/af98b0157adf6504fade79b3e6cb260c4ff68e37"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-05-11T21:26:02.409Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.3","versionEndExcluding":"5.4.295"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.3","versionEndExcluding":"5.10.239"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.3","versionEndExcluding":"5.15.186"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.3","versionEndExcluding":"6.1.142"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.3","versionEndExcluding":"6.6.95"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.3","versionEndExcluding":"6.12.35"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.3","versionEndExcluding":"6.15.4"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.3","versionEndExcluding":"6.16"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CVE Program Container","references":[{"url":"https://lists.debian.org/debian-lts-announce/2025/10/msg00008.html"},{"url":"https://lists.debian.org/debian-lts-announce/2025/10/msg00007.html"}],"providerMetadata":{"shortName":"CVE","orgId":"af854a3a-2127-422b-91ae-364da2661108","dateUpdated":"2025-11-03T17:36:47.615Z"}}]}}}