CVE-2022-50126

jbd2: fix assertion 'jh->b_frozen_data == NULL' failure when journal aborted

MEDIUM
5.5
CVSS Score
Published: June 18, 2025 at 11:02 AM UTC
Updated: June 17, 2026 at 05:22 AM UTC
1 product affected across 1 vendorLinux Kernel

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
MEDIUM5.5
Exploit prediction
EPSS 0.2%

Description

In the Linux kernel, the following vulnerability has been resolved: jbd2: fix assertion 'jh->b_frozen_data == NULL' failure when journal aborted Following process will fail assertion 'jh->b_frozen_data == NULL' in jbd2_journal_dirty_metadata(): jbd2_journal_commit_transaction unlink(dir/a) jh->b_transaction = trans1 jh->b_jlist = BJ_Metadata journal->j_running_transaction = NULL trans1->t_state = T_COMMIT unlink(dir/b) handle->h_trans = trans2 do_get_write_access jh->b_modified = 0 jh->b_frozen_data = frozen_buffer jh->b_next_transaction = trans2 jbd2_journal_dirty_metadata is_handle_aborted is_journal_aborted // return false --> jbd2 abort <-- while (commit_transaction->t_buffers) if (is_journal_aborted) jbd2_journal_refile_buffer __jbd2_journal_refile_buffer WRITE_ONCE(jh->b_transaction, jh->b_next_transaction) WRITE_ONCE(jh->b_next_transaction, NULL) __jbd2_journal_file_buffer(jh, BJ_Reserved) J_ASSERT_JH(jh, jh->b_frozen_data == NULL) // assertion failure ! The reproducer (See detail in [Link]) reports: ------------[ cut here ]------------ kernel BUG at fs/jbd2/transaction.c:1629! invalid opcode: 0000 [#1] PREEMPT SMP CPU: 2 PID: 584 Comm: unlink Tainted: G W 5.19.0-rc6-00115-g4a57a8400075-dirty #697 RIP: 0010:jbd2_journal_dirty_metadata+0x3c5/0x470 RSP: 0018:ffffc90000be7ce0 EFLAGS: 00010202 Call Trace: <TASK> __ext4_handle_dirty_metadata+0xa0/0x290 ext4_handle_dirty_dirblock+0x10c/0x1d0 ext4_delete_entry+0x104/0x200 __ext4_unlink+0x22b/0x360 ext4_unlink+0x275/0x390 vfs_unlink+0x20b/0x4c0 do_unlinkat+0x42f/0x4c0 __x64_sys_unlink+0x37/0x50 do_syscall_64+0x35/0x80 After journal aborting, __jbd2_journal_refile_buffer() is executed with holding @jh->b_state_lock, we can fix it by moving 'is_handle_aborted()' into the area protected by @jh->b_state_lock.

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

2.6.19 ≤ v < 4.14.2912.6.19 ≤ v < 4.19.2562.6.19 ≤ v < 5.10.1372.6.19 ≤ v < 5.15.612.6.19 ≤ v < 5.18.182.6.19 ≤ v < 5.19.22.6.19 ≤ v < 5.4.2112.6.19 ≤ v < 6.02.6.20 ≤ v < 4.14.2914.15 ≤ v < 4.19.2564.20 ≤ v < 5.4.2115.11 ≤ v < 5.15.615.16 ≤ v < 5.18.185.19 ≤ v < 5.19.25.5 ≤ v < 5.10.1372.6.192.6.19 rc22.6.19 rc32.6.19 rc42.6.19 rc52.6.19 rc6470decc613ab2048b619a01028072d932d9086ee
Vendor states this is fixed in 0f61c6dc4b714be9d79cf0782ca02ba01c1b7ac3 (fixed)
Vendor states this is fixed in 4a734f0869f970b8a9b65062ea40b09a5da9dba8 (fixed)
Vendor states this is fixed in 6073389db83b903678a0920554fa19f5bdc51c48 (fixed)
Vendor states this is fixed in 731c1662d838fe954c6759e3ee43229b0d928fe4 (fixed)
Vendor states this is fixed in ddd896792e1718cb84c96f3e618270589b6886dc (fixed)
Vendor states this is fixed in e62f79827784f56499a50ea2e893c98317b5407b (fixed)
Vendor states this is fixed in f7161d0da975adc234161cd0641d0e484f5ce375 (fixed)
Vendor states this is fixed in fa5b65d39332fef7a11ae99cb1f0696012a61527 (fixed)
Vendor states this is fixed in 2.6.19 (unaffected)
Vendor states this is fixed in 4.14.291 (unaffected)
Vendor states this is fixed in 4.19.256 (unaffected)
Vendor states this is fixed in 5.10.137 (unaffected)
Vendor states this is fixed in 5.15.61 (unaffected)
Vendor states this is fixed in 5.18.18 (unaffected)
Vendor states this is fixed in 5.19.2 (unaffected)
Vendor states this is fixed in 5.4.211 (unaffected)
Vendor states this is fixed in 6.0 (unaffected)

References (8)

Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/0f61c6dc4b714be9d79cf0782ca02ba01c1b7ac3
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/4a734f0869f970b8a9b65062ea40b09a5da9dba8
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/6073389db83b903678a0920554fa19f5bdc51c48
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/731c1662d838fe954c6759e3ee43229b0d928fe4
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/ddd896792e1718cb84c96f3e618270589b6886dc
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/e62f79827784f56499a50ea2e893c98317b5407b
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/f7161d0da975adc234161cd0641d0e484f5ce375
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/fa5b65d39332fef7a11ae99cb1f0696012a61527

CVSS

Attack Vector
LOCAL
Complexity
LOW
Privileges
LOW
User Interaction
NONE
Scope
UNCHANGED
Confidentiality
NONE
Integrity
NONE
Availability
HIGH
Vector?

Quick Info

StatusANALYZED
CWE
CWE-617

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card