{"id":"CVE-2025-68337","state":"PUBLISHED","title":"jbd2: avoid bug_on in jbd2_journal_get_create_access() when file system corrupted","description":"In the Linux kernel, the following vulnerability has been resolved:\n\njbd2: avoid bug_on in jbd2_journal_get_create_access() when file system corrupted\n\nThere's issue when file system corrupted:\n------------[ cut here ]------------\nkernel BUG at fs/jbd2/transaction.c:1289!\nOops: invalid opcode: 0000 [#1] SMP KASAN PTI\nCPU: 5 UID: 0 PID: 2031 Comm: mkdir Not tainted 6.18.0-rc1-next\nRIP: 0010:jbd2_journal_get_create_access+0x3b6/0x4d0\nRSP: 0018:ffff888117aafa30 EFLAGS: 00010202\nRAX: 0000000000000000 RBX: ffff88811a86b000 RCX: ffffffff89a63534\nRDX: 1ffff110200ec602 RSI: 0000000000000004 RDI: ffff888100763010\nRBP: ffff888100763000 R08: 0000000000000001 R09: ffff888100763028\nR10: 0000000000000003 R11: 0000000000000000 R12: 0000000000000000\nR13: ffff88812c432000 R14: ffff88812c608000 R15: ffff888120bfc000\nCS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033\nCR2: 00007f91d6970c99 CR3: 00000001159c4000 CR4: 00000000000006f0\nCall Trace:\n <TASK>\n __ext4_journal_get_create_access+0x42/0x170\n ext4_getblk+0x319/0x6f0\n ext4_bread+0x11/0x100\n ext4_append+0x1e6/0x4a0\n ext4_init_new_dir+0x145/0x1d0\n ext4_mkdir+0x326/0x920\n vfs_mkdir+0x45c/0x740\n do_mkdirat+0x234/0x2f0\n __x64_sys_mkdir+0xd6/0x120\n do_syscall_64+0x5f/0xfa0\n entry_SYSCALL_64_after_hwframe+0x76/0x7e\n\nThe above issue occurs with us in errors=continue mode when accompanied by\nstorage failures. There have been many inconsistencies in the file system\ndata.\nIn the case of file system data inconsistency, for example, if the block\nbitmap of a referenced block is not set, it can lead to the situation where\na block being committed is allocated and used again. As a result, the\nfollowing condition will not be satisfied then trigger BUG_ON. Of course,\nit is entirely possible to construct a problematic image that can trigger\nthis BUG_ON through specific operations. In fact, I have constructed such\nan image and easily reproduced this issue.\nTherefore, J_ASSERT() holds true only under ideal conditions, but it may\nnot necessarily be satisfied in exceptional scenarios. Using J_ASSERT()\ndirectly in abnormal situations would cause the system to crash, which is\nclearly not what we want. So here we directly trigger a JBD abort instead\nof immediately invoking BUG_ON.","publishedAt":"2025-12-22T16:14:14.145Z","updatedAt":"2026-10-15T01:09:52.527Z","severity":{"score":7.5,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","source":"Linux"},"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"470decc613ab2048b619a01028072d932d9086ee","status":"affected","lessThan":"71bbe06c40fc59b5b15661eca8ff307f4176d7f9","versionType":"git"},{"version":"470decc613ab2048b619a01028072d932d9086ee","status":"affected","lessThan":"ed62fd8c15d41c4127ad16b8219b63124f5962bc","versionType":"git"},{"version":"470decc613ab2048b619a01028072d932d9086ee","status":"affected","lessThan":"3faac6531d4818cd6be45e5bbf32937bbbc795c0","versionType":"git"},{"version":"470decc613ab2048b619a01028072d932d9086ee","status":"affected","lessThan":"b4f8eabf6d991bd41fabcdf9302c4b3eab590cf4","versionType":"git"},{"version":"470decc613ab2048b619a01028072d932d9086ee","status":"affected","lessThan":"a2a7f854d154a3e9232fec80782dad951655f52f","versionType":"git"},{"version":"470decc613ab2048b619a01028072d932d9086ee","status":"affected","lessThan":"bf34c72337e40c4670cceeb79b353356933a254b","versionType":"git"},{"version":"470decc613ab2048b619a01028072d932d9086ee","status":"affected","lessThan":"aa1703f3f706ea0867fb1991dcac709c9ec94cfb","versionType":"git"},{"version":"470decc613ab2048b619a01028072d932d9086ee","status":"affected","lessThan":"986835bf4d11032bba4ab8414d18fce038c61bb4","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":"2.6.19","status":"affected"},{"version":"0","status":"unaffected","lessThan":"2.6.19","versionType":"semver"},{"version":"5.10.248","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.198","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.160","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.120","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.62","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.17.12","status":"unaffected","lessThanOrEqual":"6.17.*","versionType":"semver"},{"version":"6.18.1","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"6.19","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/71bbe06c40fc59b5b15661eca8ff307f4176d7f9","https://git.kernel.org/stable/c/ed62fd8c15d41c4127ad16b8219b63124f5962bc","https://git.kernel.org/stable/c/3faac6531d4818cd6be45e5bbf32937bbbc795c0","https://git.kernel.org/stable/c/b4f8eabf6d991bd41fabcdf9302c4b3eab590cf4","https://git.kernel.org/stable/c/a2a7f854d154a3e9232fec80782dad951655f52f","https://git.kernel.org/stable/c/bf34c72337e40c4670cceeb79b353356933a254b","https://git.kernel.org/stable/c/aa1703f3f706ea0867fb1991dcac709c9ec94cfb","https://git.kernel.org/stable/c/986835bf4d11032bba4ab8414d18fce038c61bb4","https://cert-portal.siemens.com/productcert/html/ssa-019113.html","https://cert-portal.siemens.com/productcert/html/ssa-457936.html"],"weaknesses":[],"ingestedAt":"2026-10-29T20:09:56.034Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2025/68xxx/CVE-2025-68337.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2025-68337","state":"PUBLISHED","datePublished":"2025-12-22T16:14:14.145Z","dateUpdated":"2026-10-15T01:09:52.527Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2025-12-16T14:48:05.297Z"},"containers":{"cna":{"title":"jbd2: avoid bug_on in jbd2_journal_get_create_access() when file system corrupted","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\njbd2: avoid bug_on in jbd2_journal_get_create_access() when file system corrupted\n\nThere's issue when file system corrupted:\n------------[ cut here ]------------\nkernel BUG at fs/jbd2/transaction.c:1289!\nOops: invalid opcode: 0000 [#1] SMP KASAN PTI\nCPU: 5 UID: 0 PID: 2031 Comm: mkdir Not tainted 6.18.0-rc1-next\nRIP: 0010:jbd2_journal_get_create_access+0x3b6/0x4d0\nRSP: 0018:ffff888117aafa30 EFLAGS: 00010202\nRAX: 0000000000000000 RBX: ffff88811a86b000 RCX: ffffffff89a63534\nRDX: 1ffff110200ec602 RSI: 0000000000000004 RDI: ffff888100763010\nRBP: ffff888100763000 R08: 0000000000000001 R09: ffff888100763028\nR10: 0000000000000003 R11: 0000000000000000 R12: 0000000000000000\nR13: ffff88812c432000 R14: ffff88812c608000 R15: ffff888120bfc000\nCS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033\nCR2: 00007f91d6970c99 CR3: 00000001159c4000 CR4: 00000000000006f0\nCall Trace:\n <TASK>\n __ext4_journal_get_create_access+0x42/0x170\n ext4_getblk+0x319/0x6f0\n ext4_bread+0x11/0x100\n ext4_append+0x1e6/0x4a0\n ext4_init_new_dir+0x145/0x1d0\n ext4_mkdir+0x326/0x920\n vfs_mkdir+0x45c/0x740\n do_mkdirat+0x234/0x2f0\n __x64_sys_mkdir+0xd6/0x120\n do_syscall_64+0x5f/0xfa0\n entry_SYSCALL_64_after_hwframe+0x76/0x7e\n\nThe above issue occurs with us in errors=continue mode when accompanied by\nstorage failures. There have been many inconsistencies in the file system\ndata.\nIn the case of file system data inconsistency, for example, if the block\nbitmap of a referenced block is not set, it can lead to the situation where\na block being committed is allocated and used again. As a result, the\nfollowing condition will not be satisfied then trigger BUG_ON. Of course,\nit is entirely possible to construct a problematic image that can trigger\nthis BUG_ON through specific operations. In fact, I have constructed such\nan image and easily reproduced this issue.\nTherefore, J_ASSERT() holds true only under ideal conditions, but it may\nnot necessarily be satisfied in exceptional scenarios. Using J_ASSERT()\ndirectly in abnormal situations would cause the system to crash, which is\nclearly not what we want. So here we directly trigger a JBD abort instead\nof immediately invoking BUG_ON."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"470decc613ab2048b619a01028072d932d9086ee","status":"affected","lessThan":"71bbe06c40fc59b5b15661eca8ff307f4176d7f9","versionType":"git"},{"version":"470decc613ab2048b619a01028072d932d9086ee","status":"affected","lessThan":"ed62fd8c15d41c4127ad16b8219b63124f5962bc","versionType":"git"},{"version":"470decc613ab2048b619a01028072d932d9086ee","status":"affected","lessThan":"3faac6531d4818cd6be45e5bbf32937bbbc795c0","versionType":"git"},{"version":"470decc613ab2048b619a01028072d932d9086ee","status":"affected","lessThan":"b4f8eabf6d991bd41fabcdf9302c4b3eab590cf4","versionType":"git"},{"version":"470decc613ab2048b619a01028072d932d9086ee","status":"affected","lessThan":"a2a7f854d154a3e9232fec80782dad951655f52f","versionType":"git"},{"version":"470decc613ab2048b619a01028072d932d9086ee","status":"affected","lessThan":"bf34c72337e40c4670cceeb79b353356933a254b","versionType":"git"},{"version":"470decc613ab2048b619a01028072d932d9086ee","status":"affected","lessThan":"aa1703f3f706ea0867fb1991dcac709c9ec94cfb","versionType":"git"},{"version":"470decc613ab2048b619a01028072d932d9086ee","status":"affected","lessThan":"986835bf4d11032bba4ab8414d18fce038c61bb4","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":"2.6.19","status":"affected"},{"version":"0","status":"unaffected","lessThan":"2.6.19","versionType":"semver"},{"version":"5.10.248","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.198","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.160","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.120","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.62","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.17.12","status":"unaffected","lessThanOrEqual":"6.17.*","versionType":"semver"},{"version":"6.18.1","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"6.19","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/71bbe06c40fc59b5b15661eca8ff307f4176d7f9"},{"url":"https://git.kernel.org/stable/c/ed62fd8c15d41c4127ad16b8219b63124f5962bc"},{"url":"https://git.kernel.org/stable/c/3faac6531d4818cd6be45e5bbf32937bbbc795c0"},{"url":"https://git.kernel.org/stable/c/b4f8eabf6d991bd41fabcdf9302c4b3eab590cf4"},{"url":"https://git.kernel.org/stable/c/a2a7f854d154a3e9232fec80782dad951655f52f"},{"url":"https://git.kernel.org/stable/c/bf34c72337e40c4670cceeb79b353356933a254b"},{"url":"https://git.kernel.org/stable/c/aa1703f3f706ea0867fb1991dcac709c9ec94cfb"},{"url":"https://git.kernel.org/stable/c/986835bf4d11032bba4ab8414d18fce038c61bb4"}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","baseScore":7.5,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:N - A remote client can reach the vulnerable path through a guest-writable ksmbd share or permissive NFS export backed by corrupted ext4; SMB/NFS directory creation ultimately invokes ext4_mkdir().\nAC:L - Once the bitmap/journal inconsistency exists, directory creation deterministically reaches the assertion, and the commit author reports easily reproducing it with a constructed image.\nPR:N - A guest-writable SMB share or permissive NFS export can require no credentials, while the underlying mkdir path requires only directory write and search permission without capabilities.\nUI:N - The attacker directly issues the directory-creation request against an already-mounted filesystem, requiring no victim action during exploitation.\nS:U - The failure remains within the host kernel and filesystem security authority and does not cross a virtualization or sandbox boundary.\nC:N - The failed JBD2 invariant immediately executes BUG_ON without exposing memory or providing an out-of-bounds read primitive.\nI:N - The defect is an assertion-triggered crash, not memory corruption, and it provides no attacker-controlled write or code-execution primitive.\nA:H - BUG_ON raises an invalid-opcode kernel oops and can panic or reboot the system; the request can be repeated while the corrupted filesystem state persists."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-05T12:10:55.345Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.19","versionEndExcluding":"5.10.248"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.19","versionEndExcluding":"5.15.198"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.19","versionEndExcluding":"6.1.160"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.19","versionEndExcluding":"6.6.120"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.19","versionEndExcluding":"6.12.62"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.19","versionEndExcluding":"6.17.12"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.19","versionEndExcluding":"6.18.1"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.19","versionEndExcluding":"6.19"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2026-06-16T16:56:17.316148Z","id":"CVE-2025-68337","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-06-16T16:56:28.626Z"}},{"affected":[{"vendor":"Siemens","product":"SIMATIC S7-1500 CPU 1518-4 PN/DP MFP","defaultStatus":"unknown","versions":[{"version":"V3.1.6","status":"affected","lessThan":"*","versionType":"custom"}]},{"vendor":"Siemens","product":"SIMATIC S7-1500 CPU 1518-4 PN/DP MFP","defaultStatus":"unknown","versions":[{"version":"V3.1.7","status":"affected","lessThan":"*","versionType":"custom"}]},{"vendor":"Siemens","product":"SIMATIC S7-1500 CPU 1518-4 PN/DP MFP","defaultStatus":"unknown","versions":[{"version":"V3.1.6","status":"affected","lessThan":"*","versionType":"custom"}]},{"vendor":"Siemens","product":"SIMATIC S7-1500 CPU 1518-4 PN/DP MFP","defaultStatus":"unknown","versions":[{"version":"V3.1.7","status":"affected","lessThan":"*","versionType":"custom"}]},{"vendor":"Siemens","product":"SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP","defaultStatus":"unknown","versions":[{"version":"V3.1.6","status":"affected","lessThan":"*","versionType":"custom"}]},{"vendor":"Siemens","product":"SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP","defaultStatus":"unknown","versions":[{"version":"V3.1.7","status":"affected","lessThan":"*","versionType":"custom"}]},{"vendor":"Siemens","product":"SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP","defaultStatus":"unknown","versions":[{"version":"V3.1.6","status":"affected","lessThan":"*","versionType":"custom"}]},{"vendor":"Siemens","product":"SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP","defaultStatus":"unknown","versions":[{"version":"V3.1.7","status":"affected","lessThan":"*","versionType":"custom"}]},{"vendor":"Siemens","product":"SIPLUS S7-1500 CPU 1518-4 PN/DP MFP","defaultStatus":"unknown","versions":[{"version":"V3.1.6","status":"affected","lessThan":"*","versionType":"custom"}]},{"vendor":"Siemens","product":"SIPLUS S7-1500 CPU 1518-4 PN/DP MFP","defaultStatus":"unknown","versions":[{"version":"V3.1.7","status":"affected","lessThan":"*","versionType":"custom"}]}],"references":[{"url":"https://cert-portal.siemens.com/productcert/html/ssa-019113.html"},{"url":"https://cert-portal.siemens.com/productcert/html/ssa-457936.html"}],"providerMetadata":{"shortName":"siemens-SADP","orgId":"0b142b55-0307-4c5a-b3c9-f314f3fb7c5e","dateUpdated":"2026-10-15T01:09:52.527Z"},"x_adpType":"supplier"}]}}}