CVEvulnerability
CVE-2022-49348
5.5 MEDIUM
Official page ↗
- Status
- Analyzed
- Published
- 2025-02-26
- Last modified
- 2026-06-17
- Assigner
- 416baaa9-dc9f-4396-8d5f-8c081fb06d67
- 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:
ext4: filter out EXT4_FC_REPLAY from on-disk superblock field s_state
The EXT4_FC_REPLAY bit in sbi->s_mount_state is used to indicate that
we are in the middle of replay the fast commit journal. This was
actually a mistake, since the sbi->s_mount_info is initialized from
es->s_state. Arguably s_mount_state is misleadingly named, but the
name is historical --- s_mount_state and s_state dates back to ext2.
What should have been used is the ext4_{set,clear,test}_mount_flag()
inline functions, which sets EXT4_MF_* bits in sbi->s_mount_flags.
The problem with using EXT4_FC_REPLAY is that a maliciously corrupted
superblock could result in EXT4_FC_REPLAY getting set in
s_mount_state. This bypasses some sanity checks, and this can trigger
a BUG() in ext4_es_cache_extent(). As a easy-to-backport-fix, filter
out the EXT4_FC_REPLAY bit for now. We should eventually transition
away from EXT4_FC_REPLAY to something like EXT4_MF_REPLAY.
Affected configurations
• linux linux kernel (>= 5.10 < 5.10.121)
• linux linux kernel (>= 5.11 < 5.15.46)
• linux linux kernel (>= 5.16 < 5.17.14)
• linux linux kernel (>= 5.18 < 5.18.3)
References
- https://git.kernel.org/stable/c/55b4dbb29054a05d839562f6d635ce05669b016d Patch
- https://git.kernel.org/stable/c/af2f1932743fb52ebcb008ad7ac500d9df0aa796 Patch
- https://git.kernel.org/stable/c/b99fd73418350dea360da8311e87a6a7b0e15a4c Patch
- https://git.kernel.org/stable/c/c878bea3c9d724ddfa05a813f30de3d25a0ba83f Patch
- https://git.kernel.org/stable/c/cc5b09cb6dacd4b32640537929ab4ee8fb2b9e04 Patch