CVE-2025-22113

CVE-2025-22113

Medium · published April 16, 2025

CVSS v3.1
5.5
EPSS
0%
Percentile
10.6
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

ext4: avoid journaling sb update on error if journal is destroying

Presently we always BUG_ON if trying to start a transaction on a journal marked

with JBD2_UNMOUNT, since this should never happen. However, while ltp running

stress tests, it was observed that in case of some error handling paths, it is

possible for update_super_work to start a transaction after the journal is

destroyed eg:

(umount)

ext4_kill_sb

kill_block_super

generic_shutdown_super

sync_filesystem /* commits all txns */

evict_inodes

/* might start a new txn */

ext4_put_super

flush_work(&sbi->s_sb_upd_work) /* flush the workqueue */

jbd2_journal_destroy

journal_kill_thread

journal->j_flags |= JBD2_UNMOUNT;

jbd2_journal_commit_transaction

jbd2_journal_get_descriptor_buffer

jbd2_journal_bmap

ext4_journal_bmap

ext4_map_blocks

...

ext4_inode_error

ext4_handle_error

schedule_work(&sbi->s_sb_upd_work)

/* work queue kicks in */

update_super_work

jbd2_journal_start

start_this_handle

BUG_ON(journal->j_flags &

JBD2_UNMOUNT)

Hence, introduce a new mount flag to indicate journal is destroying and only do

a journaled (and deferred) update of sb if this flag is not set. Otherwise, just

fallback to an un-journaled commit.

Further, in the journal destroy path, we have the following sequence:

1. Set mount flag indicating journal is destroying

2. force a commit and wait for it

3. flush pending sb updates

This sequence is important as it ensures that, after this point, there is no sb

update that might be journaled so it is safe to update the sb outside the

journal. (To avoid race discussed in 2d01ddc86606)

Also, we don't need a similar check in ext4_grp_locked_error since it is only

called from mballoc and AFAICT it would be always valid to schedule work here.

The record
Technical detail
CVSS v3.1
5.5 · MEDIUM
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
CVSS v4.0
Not supplied
EPSS
0.00209 · 10.6th percentile
Published
2025-04-16T19:16Z
Affected products (7)
ProductVersionsFixed in
linux/linux_kernel≥ 5.11.1, < 6.12.466.12.46
linux/linux_kernel≥ 6.13, < 6.14.26.14.2
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
References (4)
EPSS history
Timeline
  • 16 APR 14:12Z
    ext4: avoid journaling sb update on error if journal is destroying
    cvelistv5