CVEvulnerability
CVE-2023-53526
5.5 MEDIUM
Official page ↗
- Status
- Modified
- Published
- 2025-10-01
- Last modified
- 2026-10-15
- Assigner
- 416baaa9-dc9f-4396-8d5f-8c081fb06d67
- CVSS 3.1 (416baaa9-dc9f-4396-8d5f-8c081fb06d67)
- 7.8 HIGH — CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
- CVSS 3.1 ([email protected])
- 5.5 MEDIUM — CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Description
In the Linux kernel, the following vulnerability has been resolved:
jbd2: check 'jh->b_transaction' before removing it from checkpoint
Following process will corrupt ext4 image:
Step 1:
jbd2_journal_commit_transaction
__jbd2_journal_insert_checkpoint(jh, commit_transaction)
// Put jh into trans1->t_checkpoint_list
journal->j_checkpoint_transactions = commit_transaction
// Put trans1 into journal->j_checkpoint_transactions
Step 2:
do_get_write_access
test_clear_buffer_dirty(bh) // clear buffer dirty,set jbd dirty
__jbd2_journal_file_buffer(jh, transaction) // jh belongs to trans2
Step 3:
drop_cache
journal_shrink_one_cp_list
jbd2_journal_try_remove_checkpoint
if (!trylock_buffer(bh)) // lock bh, true
if (buffer_dirty(bh)) // buffer is not dirty
__jbd2_journal_remove_checkpoint(jh)
// remove jh from trans1->t_checkpoint_list
Step 4:
jbd2_log_do_checkpoint
trans1 = journal->j_checkpoint_transactions
// jh is not in trans1->t_checkpoint_list
jbd2_cleanup_journal_tail(journal) // trans1 is done
Step 5: Power cut, trans2 is not committed, jh is lost in next mounting.
Fix it by checking 'jh->b_transaction' before remove it from checkpoint.
Affected configurations
• linux linux kernel (>= 5.15.129 < 5.15.132)
• linux linux kernel (>= 6.1.50 < 6.1.54)
• linux linux kernel (>= 6.4.13 < 6.5)
• linux linux kernel (>= 6.5.1 < 6.5.4)
• linux linux kernel 6.5
References
- https://git.kernel.org/stable/c/2298f2589903a8bc03061b54b31fd97985ab6529 Patch
- https://git.kernel.org/stable/c/590a809ff743e7bd890ba5fb36bc38e20a36de53 Patch
- https://git.kernel.org/stable/c/dbafe636db415299e54d9dfefc1003bda9e71c9d Patch
- https://git.kernel.org/stable/c/ef5fea70e5915afd64182d155e72bfb4f275e1fc Patch