CVE-2024-40998 json
ext4: fix uninitialized ratelimit_state->lock access in __ext4_fill_super()
published 2024-07-12 2 y ago modified 2026-10-30 10 d ago also EUVD-2024-38792
- cvss
- 5.5
- version 3.1, NVD
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.3%
- EPSS 0.3% chance of exploitation in 30 days, percentile 19%
- public exploits
- 0
- none known
Summary
In the Linux kernel, the following vulnerability has been resolved:
ext4: fix uninitialized ratelimit_state->lock access in __ext4_fill_super()
In the following concurrency we will access the uninitialized rs->lock:
ext4_fill_super ext4_register_sysfs // sysfs registered msg_ratelimit_interval_ms // Other processes modify rs->interval to // non-zero via msg_ratelimit_interval_ms ext4_orphan_cleanup ext4_msg(sb, KERN_INFO, "Errors on filesystem, " __ext4_msg ___ratelimit(&(EXT4_SB(sb)->s_msg_ratelimit_state) if (!rs->interval) // do nothing if interval is 0 return 1; raw_spin_trylock_irqsave(&rs->lock, flags) raw_spin_trylock(lock) _raw_spin_trylock __raw_spin_trylock spin_acquire(&lock->dep_map, 0, 1, _RET_IP_) lock_acquire __lock_acquire register_lock_class assign_lock_key dump_stack(); ratelimit_state_init(&sbi->s_msg_ratelimit_state, 5 * HZ, 10); raw_spin_lock_init(&rs->lock); // init rs->lock here
and get the following dump_stack:
========================================================= INFO: trying to register non-static key. The code is fine but needs lockdep annotation, or maybe you didn't initialize this object before use? turning off the locking correctness validator. CPU: 12 PID: 753 Comm: mount Tainted: G E 6.7.0-rc6-next-20231222 #504 [...] Call Trace: dump_stack_lvl+0xc5/0x170 dump_stack+0x18/0x30 register_lock_class+0x740/0x7c0 __lock_acquire+0x69/0x13a0 lock_acquire+0x120/0x450 _raw_spin_trylock+0x98/0xd0 ___ratelimit+0xf6/0x220 __ext4_msg+0x7f/0x160 [ext4] ext4_orphan_cleanup+0x665/0x740 [ext4] __ext4_fill_super+0x21ea/0x2b10 [ext4] ext4_fill_super+0x14d/0x360 [ext4] [...] =========================================================
Normally interval is 0 until s_msg_ratelimit_state is initialized, so ___ratelimit() does nothing. But registering sysfs precedes initializing rs->lock, so it is possible to change rs->interval to a non-zero value via the msg_ratelimit_interval_ms interface of sysfs while rs->lock is uninitialized, and then a call to ext4_msg triggers the problem by accessing an uninitialized rs->lock. Therefore register sysfs after all initializations are complete to avoid such problems.
Patch / fix
- Linux Linux 6.1.191, 6.6.36, 6.9.7, 6.10
- linux Debian 14, Debian 13 6.9.7-1
debian advisories DEBIAN-CVE-2024-40998
- linux Ubuntu 24.04 LTS 6.8.0-44.44
- linux-aws Ubuntu 24.04 LTS 6.8.0-1015.16
- linux-gcp Ubuntu 24.04 LTS 6.8.0-1014.16
- linux-gke Ubuntu 24.04 LTS 6.8.0-1010.13
- linux-ibm Ubuntu 24.04 LTS 6.8.0-1012.12
- linux-azure Ubuntu 24.04 LTS 6.8.0-1014.16
- linux-raspi Ubuntu 24.04 LTS 6.8.0-1011.12
- linux-riscv Ubuntu 24.04 LTS 6.8.0-44.44.1
ubuntu advisories UBUNTU-CVE-2024-40998
Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
- kernel RHEL 9 5.14.0-427.42.1.el9_4
- rv RHEL 9 5.14.0-427.42.1.el9_4
- perf RHEL 9 5.14.0-427.42.1.el9_4
- rtla RHEL 9 5.14.0-427.42.1.el9_4
- bpftool RHEL 9 7.3.0-427.42.1.el9_4
- libperf RHEL 9 5.14.0-427.42.1.el9_4
- kernel-rt RHEL 9 5.14.0-427.42.1.el9_4
- kernel-64k RHEL 9 5.14.0-427.42.1.el9_4
red hat advisories RHSA-2024:8616RHSA-2024:8617RHSA-2024:8614RHSA-2024:8613RHSA-2024:8107RHSA-2024:7000
- kernel-rt Linux Micro 6.0 6.4.0-9.1
- kernel-source-rt Linux Micro 6.0 6.4.0-9.1
- kernel-source Linux Micro 6.0 6.4.0-18.1
- kernel-default Linux Micro 6.0 6.4.0-18.1
- kernel-kvmsmall Linux Micro 6.0 6.4.0-18.1
- kernel-default-base Linux Micro 6.0 6.4.0-17.1.1.51
- kernel-rt Real Time Module 15 SP6, openSUSE Leap 15.6 6.4.0-150600.10.5.1
- kernel-syms-rt Real Time Module 15 SP6, openSUSE Leap 15.6 6.4.0-150600.10.5.1
suse advisories SUSE-SU-2025:20028-1SUSE-SU-2025:20008-1SUSE-SU-2024:2973-1SUSE-SU-2024:2947-1SUSE-SU-2024:2940-1SUSE-SU-2024:2939-1
- kernel AlmaLinux 9 5.14.0-427.42.1.el9_4
- rv AlmaLinux 9 5.14.0-427.42.1.el9_4
- perf AlmaLinux 9 5.14.0-427.42.1.el9_4
- rtla AlmaLinux 9 5.14.0-427.42.1.el9_4
- bpftool AlmaLinux 9 7.3.0-427.42.1.el9_4
- libperf AlmaLinux 9 5.14.0-427.42.1.el9_4
- kernel-rt AlmaLinux 9 5.14.0-427.42.1.el9_4
- kernel-64k AlmaLinux 9 5.14.0-427.42.1.el9_4
almalinux advisories ALSA-2024:8617ALSA-2024:7000ALSA-2024:7001
- kernel Rocky Linux 8 4.18.0-553.22.1.el8_10
- kernel Rocky Linux 9 5.14.0-427.42.1.el9_4
- kernel-rt Rocky Linux 8 4.18.0-553.22.1.rt7.363.el8_10
rocky linux advisories RLSA-2024:7000RLSA-2024:8617RLSA-2024:7001
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2024-40998 updated cvss 5.5
kernel: ext4: fix uninitialized ratelimit_state->lock access in __ext4_fill_super()
-
Red Hat Enterprise Linux 6 perf, kernel, python-perf, kernel-kdump, kernel-firmware, kernel-bootwrapper, +1 more Red Hat Enterprise Linux 7 perf, kernel, bpftool, kernel-rt, python-perf, kernel-kdump, +8 moreaffected: workaround, no fix planned “Out of support scope”
-
Red Hat Enterprise Linux 9 kernel-rt, kernel-rt-kvm, kernel-rt-core, kernel-rt-modules, kernel-rt-debug-kvm, kernel-rt-debug-core, +12 moreaffected: workaround, no fix available
-
Red Hat CodeReady Linux Builder EUS (v.8.8) kernel-debuginfo-common-x86_64 4.18.0-477.75.1.el8_8, kernel-debuginfo-common-aarch64 4.18.0-477.75.1.el8_8, kernel-debuginfo-common-ppc64le 4.18.0-477.75.1.el8_8fixed: vendor fix RHSA-2024:8107
-
Red Hat CodeReady Linux Builder EUS (v.9.2) kernel-debuginfo-common-s390x 5.14.0-284.90.1.el9_2, kernel-debuginfo-common-x86_64 5.14.0-284.90.1.el9_2, kernel-debuginfo-common-aarch64 5.14.0-284.90.1.el9_2, kernel-debuginfo-common-ppc64le 5.14.0-284.90.1.el9_2fixed: vendor fix RHSA-2024:8613
-
Red Hat Enterprise Linux AppStream (v. 9) rv 5.14.0-427.42.1.el9_4, perf 5.14.0-427.42.1.el9_4, rtla 5.14.0-427.42.1.el9_4, kernel-devel-matched 5.14.0-427.42.1.el9_4, kernel-64k-devel-matched 5.14.0-427.42.1.el9_4, kernel-debug-devel-matched 5.14.0-427.42.1.el9_4, +6 morefixed: vendor fix RHSA-2024:8617
-
Red Hat Enterprise Linux AppStream EUS (v.9.2) perf 5.14.0-284.90.1.el9_2, rtla 5.14.0-284.90.1.el9_2, kernel-devel-matched 5.14.0-284.90.1.el9_2, kernel-64k-devel-matched 5.14.0-284.90.1.el9_2, kernel-debug-devel-matched 5.14.0-284.90.1.el9_2, kernel-debuginfo-common-s390x 5.14.0-284.90.1.el9_2, +5 morefixed: vendor fix RHSA-2024:8613
-
Red Hat Enterprise Linux BaseOS (v. 8) perf 4.18.0-553.22.1.el8_10, kernel 4.18.0-553.22.1.el8_10, bpftool 4.18.0-553.22.1.el8_10, kernel-core 4.18.0-553.22.1.el8_10, kernel-tools 4.18.0-553.22.1.el8_10, python3-perf 4.18.0-553.22.1.el8_10, +15 morefixed: vendor fix RHSA-2024:7000
-
Red Hat Enterprise Linux BaseOS (v. 9) bpftool 7.3.0-427.42.1.el9_4, kernel 5.14.0-427.42.1.el9_4, kernel-64k 5.14.0-427.42.1.el9_4, kernel-core 5.14.0-427.42.1.el9_4, kernel-tools 5.14.0-427.42.1.el9_4, python3-perf 5.14.0-427.42.1.el9_4, +28 morefixed: vendor fix RHSA-2024:8617
show 13 moreshow fewer
-
Red Hat Enterprise Linux BaseOS AUS (v.8.6) perf 4.18.0-372.127.1.el8_6, kernel 4.18.0-372.127.1.el8_6, bpftool 4.18.0-372.127.1.el8_6, kernel-core 4.18.0-372.127.1.el8_6, kernel-tools 4.18.0-372.127.1.el8_6, python3-perf 4.18.0-372.127.1.el8_6, +8 more Red Hat Enterprise Linux BaseOS E4S (v.8.6) perf 4.18.0-372.127.1.el8_6, kernel 4.18.0-372.127.1.el8_6, bpftool 4.18.0-372.127.1.el8_6, kernel-core 4.18.0-372.127.1.el8_6, kernel-tools 4.18.0-372.127.1.el8_6, python3-perf 4.18.0-372.127.1.el8_6, +15 morefixed: vendor fix RHSA-2024:8616
-
Red Hat Enterprise Linux BaseOS EUS (v.8.8) perf 4.18.0-477.75.1.el8_8, kernel 4.18.0-477.75.1.el8_8, bpftool 4.18.0-477.75.1.el8_8, kernel-core 4.18.0-477.75.1.el8_8, kernel-tools 4.18.0-477.75.1.el8_8, python3-perf 4.18.0-477.75.1.el8_8, +15 morefixed: vendor fix RHSA-2024:8107
-
Red Hat Enterprise Linux BaseOS EUS (v.9.2) bpftool 7.0.0-284.90.1.el9_2, kernel 5.14.0-284.90.1.el9_2, kernel-64k 5.14.0-284.90.1.el9_2, kernel-core 5.14.0-284.90.1.el9_2, kernel-tools 5.14.0-284.90.1.el9_2, python3-perf 5.14.0-284.90.1.el9_2, +28 morefixed: vendor fix RHSA-2024:8613
-
Red Hat Enterprise Linux BaseOS TUS (v.8.6) perf 4.18.0-372.127.1.el8_6, kernel 4.18.0-372.127.1.el8_6, bpftool 4.18.0-372.127.1.el8_6, kernel-core 4.18.0-372.127.1.el8_6, kernel-tools 4.18.0-372.127.1.el8_6, python3-perf 4.18.0-372.127.1.el8_6, +8 morefixed: vendor fix RHSA-2024:8616
-
Red Hat Enterprise Linux CRB (v. 8) kernel-debuginfo-common-x86_64 4.18.0-553.22.1.el8_10, kernel-debuginfo-common-aarch64 4.18.0-553.22.1.el8_10, kernel-debuginfo-common-ppc64le 4.18.0-553.22.1.el8_10fixed: vendor fix RHSA-2024:7000
-
Red Hat Enterprise Linux CRB (v. 9) libperf 5.14.0-427.42.1.el9_4, kernel-debuginfo-common-s390x 5.14.0-427.42.1.el9_4, kernel-debuginfo-common-x86_64 5.14.0-427.42.1.el9_4, kernel-debuginfo-common-aarch64 5.14.0-427.42.1.el9_4, kernel-debuginfo-common-ppc64le 5.14.0-427.42.1.el9_4fixed: vendor fix RHSA-2024:8617
-
Red Hat Enterprise Linux NFV (v. 8) kernel-rt 4.18.0-553.22.1.rt7.363.el8_10, kernel-rt-kvm 4.18.0-553.22.1.rt7.363.el8_10, kernel-rt-core 4.18.0-553.22.1.rt7.363.el8_10, kernel-rt-modules 4.18.0-553.22.1.rt7.363.el8_10, kernel-rt-debug-kvm 4.18.0-553.22.1.rt7.363.el8_10, kernel-rt-debug-core 4.18.0-553.22.1.rt7.363.el8_10, +4 morefixed: vendor fix RHSA-2024:7001
-
Red Hat Enterprise Linux NFV (v. 9) kernel-rt 5.14.0-427.42.1.el9_4, kernel-rt-kvm 5.14.0-427.42.1.el9_4, kernel-rt-core 5.14.0-427.42.1.el9_4, kernel-rt-modules 5.14.0-427.42.1.el9_4, kernel-rt-debug-kvm 5.14.0-427.42.1.el9_4, kernel-rt-debug-core 5.14.0-427.42.1.el9_4, +6 morefixed: vendor fix RHSA-2024:8617
-
Red Hat Enterprise Linux Real Time EUS (v.9.2) kernel-rt 5.14.0-284.90.1.rt14.375.el9_2, kernel-rt-core 5.14.0-284.90.1.rt14.375.el9_2, kernel-rt-modules 5.14.0-284.90.1.rt14.375.el9_2, kernel-rt-debug-core 5.14.0-284.90.1.rt14.375.el9_2, kernel-rt-modules-core 5.14.0-284.90.1.rt14.375.el9_2, kernel-rt-debug-modules 5.14.0-284.90.1.rt14.375.el9_2, +4 more Red Hat Enterprise Linux Real Time for NFV EUS (v.9.2) kernel-rt 5.14.0-284.90.1.rt14.375.el9_2, kernel-rt-kvm 5.14.0-284.90.1.rt14.375.el9_2, kernel-rt-core 5.14.0-284.90.1.rt14.375.el9_2, kernel-rt-modules 5.14.0-284.90.1.rt14.375.el9_2, kernel-rt-debug-kvm 5.14.0-284.90.1.rt14.375.el9_2, kernel-rt-debug-core 5.14.0-284.90.1.rt14.375.el9_2, +6 morefixed: vendor fix RHSA-2024:8614
-
Red Hat Enterprise Linux RT (v. 8) kernel-rt 4.18.0-553.22.1.rt7.363.el8_10, kernel-rt-core 4.18.0-553.22.1.rt7.363.el8_10, kernel-rt-modules 4.18.0-553.22.1.rt7.363.el8_10, kernel-rt-debug-core 4.18.0-553.22.1.rt7.363.el8_10, kernel-rt-debug-modules 4.18.0-553.22.1.rt7.363.el8_10, kernel-rt-modules-extra 4.18.0-553.22.1.rt7.363.el8_10, +2 morefixed: vendor fix RHSA-2024:7001
-
Red Hat Enterprise Linux RT (v. 9) kernel-rt 5.14.0-427.42.1.el9_4, kernel-rt-core 5.14.0-427.42.1.el9_4, kernel-rt-modules 5.14.0-427.42.1.el9_4, kernel-rt-debug-core 5.14.0-427.42.1.el9_4, kernel-rt-modules-core 5.14.0-427.42.1.el9_4, kernel-rt-debug-modules 5.14.0-427.42.1.el9_4, +4 morefixed: vendor fix RHSA-2024:8617
-
Red Hat OpenShift AI 8 rhoai/odh-rhel8-operator v2.13.1-2, rhoai/odh-dashboard-rhel8 v2.13.1-1, rhoai/odh-modelmesh-rhel8 v2.13.1-1, rhoai/odh-operator-bundle v2.13.1-2, rhoai/odh-rhel8-operator v2.14.0-24, rhoai/odh-dashboard-rhel8 v2.14.0-11, +56 morefixed: vendor fix RHBA-2024:8413
-
Red Hat Enterprise Linux AppStream EUS (v.9.2) kernel-doc 5.14.0-284.90.1.el9_2not affected: vulnerable code not present
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- partial
- Assessed
- 2 y ago
Exploit prediction
0.27% chance of exploitation in the next 30 days, higher than 19% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| NVD | 3.1 | 5.5 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H |
Affected products
- Linux Linux
Classification
- Weakness
-
- CWE-908 Use of Uninitialized Resource
- Technology feeds
References
Sources
- CVE List CVE-2024-40998
- NVD CVE-2024-40998
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.