Cloudanix VulnDB

CVE-2024-40972

None

CVSS

—

EPSS

0.2%

Published

Jul 12, 2024

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

A flaw in how Linux handles certain file attributes on damaged storage drives can cause the whole computer to freeze.

Exploitation
Local Privilege
Attacker needs
Local User
Complexity
Moderate
Impact
Denial Of Service
Component
OS kernel
Class
Race Condition
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

The ext4_xattr_set_entry function allocates new extended attribute inodes while holding a buffer lock on the external xattr block, nesting allocation locks under the buffer lock and enabling deadlock on corrupted filesystems where structures like the quota file reference xattr blocks as data blocks.

Why it matters to the business

Linux systems using the ext4 filesystem may experience unexpected hangs or crashes during normal file operations on damaged storage, leading to unplanned downtime and potential data access loss until the system is restarted or the filesystem is repaired.

How an attack unfolds

An attacker with local access or the ability to supply a corrupted ext4 image triggers xattr set operations that invoke the flawed allocation path, causing the kernel to deadlock when buffer and allocation locks are acquired in the wrong order.

How to fix it

Update the Linux kernel to a version containing commit 0752e7fb549d90c33b4d4186f11cfd25a556d1dd or later; rebuild and reboot affected systems with the patched kernel.

How to confirm the fix worked

Verify the running kernel contains commit 0752e7fb549d90c33b4d4186f11cfd25a556d1dd by checking the kernel version or git log; attempt to reproduce the deadlock scenario on a test corrupted filesystem to confirm the hang no longer occurs.

Typical attack path

  1. Obtain or induce a corrupted ext4 filesystem image containing xattr blocks referenced as data blocks
  2. Perform xattr set operations via user-space tools or applications that invoke ext4_xattr_set_entry
  3. Trigger the nested locking condition that leads to deadlock

How to detect it

Search kernel logs for deadlock messages or hung task warnings involving ext4_xattr_set_entry or buffer lock contention; inspect system call traces for xattr operations on ext4 volumes immediately preceding a hang.

What your security team should do

  • Prioritize kernel updates on all production ext4 systems within standard change windows
  • Monitor for ext4 filesystem corruption reports and schedule fsck runs where indicated
  • Review and test backup/restore procedures to ensure rapid recovery from kernel hangs

The record

In the Linux kernel, the following vulnerability has been resolved: ext4: do not create EA inode under buffer lock ext4_xattr_set_entry() creates new EA inodes while holding buffer lock on the external xattr block. This is problematic as it nests all the allocation locking (which acquires locks on other buffers) under the buffer lock. This can even deadlock when the filesystem is corrupted and e.g. quota file is setup to contain xattr block as data block. Move the allocation of EA inode out of ext4_xattr_set_entry() into the callers.

Affected packages

Ecosystem Package Introduced Fixed
AlmaLinux:8 bpftool 0 4.18.0-553.22.1.el8_10
AlmaLinux:8 kernel 0 4.18.0-553.22.1.el8_10
AlmaLinux:8 kernel-abi-stablelists 0 4.18.0-553.22.1.el8_10
AlmaLinux:8 kernel-core 0 4.18.0-553.22.1.el8_10
AlmaLinux:8 kernel-cross-headers 0 4.18.0-553.22.1.el8_10
AlmaLinux:8 kernel-debug 0 4.18.0-553.22.1.el8_10
AlmaLinux:8 kernel-debug-core 0 4.18.0-553.22.1.el8_10
AlmaLinux:8 kernel-debug-devel 0 4.18.0-553.22.1.el8_10
AlmaLinux:8 kernel-debug-modules 0 4.18.0-553.22.1.el8_10
AlmaLinux:8 kernel-debug-modules-extra 0 4.18.0-553.22.1.el8_10
AlmaLinux:8 kernel-devel 0 4.18.0-553.22.1.el8_10
AlmaLinux:8 kernel-doc 0 4.18.0-553.22.1.el8_10
AlmaLinux:8 kernel-headers 0 4.18.0-553.22.1.el8_10
AlmaLinux:8 kernel-modules 0 4.18.0-553.22.1.el8_10
AlmaLinux:8 kernel-modules-extra 0 4.18.0-553.22.1.el8_10
AlmaLinux:8 kernel-rt 0 4.18.0-553.22.1.rt7.363.el8_10
AlmaLinux:8 kernel-rt-core 0 4.18.0-553.22.1.rt7.363.el8_10
AlmaLinux:8 kernel-rt-debug 0 4.18.0-553.22.1.rt7.363.el8_10
AlmaLinux:8 kernel-rt-debug-core 0 4.18.0-553.22.1.rt7.363.el8_10
AlmaLinux:8 kernel-rt-debug-devel 0 4.18.0-553.22.1.rt7.363.el8_10
AlmaLinux:8 kernel-rt-debug-kvm 0 4.18.0-553.22.1.rt7.363.el8_10
AlmaLinux:8 kernel-rt-debug-modules 0 4.18.0-553.22.1.rt7.363.el8_10
AlmaLinux:8 kernel-rt-debug-modules-extra 0 4.18.0-553.22.1.rt7.363.el8_10
AlmaLinux:8 kernel-rt-devel 0 4.18.0-553.22.1.rt7.363.el8_10
AlmaLinux:8 kernel-rt-kvm 0 4.18.0-553.22.1.rt7.363.el8_10
AlmaLinux:8 kernel-rt-modules 0 4.18.0-553.22.1.rt7.363.el8_10
AlmaLinux:8 kernel-rt-modules-extra 0 4.18.0-553.22.1.rt7.363.el8_10
AlmaLinux:8 kernel-tools 0 4.18.0-553.22.1.el8_10
AlmaLinux:8 kernel-tools-libs 0 4.18.0-553.22.1.el8_10
AlmaLinux:8 kernel-tools-libs-devel 0 4.18.0-553.22.1.el8_10
AlmaLinux:8 kernel-zfcpdump 0 4.18.0-553.22.1.el8_10
AlmaLinux:8 kernel-zfcpdump-core 0 4.18.0-553.22.1.el8_10
AlmaLinux:8 kernel-zfcpdump-devel 0 4.18.0-553.22.1.el8_10
AlmaLinux:8 kernel-zfcpdump-modules 0 4.18.0-553.22.1.el8_10
AlmaLinux:8 kernel-zfcpdump-modules-extra 0 4.18.0-553.22.1.el8_10
AlmaLinux:8 perf 0 4.18.0-553.22.1.el8_10
AlmaLinux:8 python3-perf 0 4.18.0-553.22.1.el8_10
AlmaLinux:9 bpftool 0 7.3.0-427.42.1.el9_4
AlmaLinux:9 kernel 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 kernel-64k 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 kernel-64k-core 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 kernel-64k-debug 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 kernel-64k-debug-core 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 kernel-64k-debug-devel 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 kernel-64k-debug-devel-matched 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 kernel-64k-debug-modules 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 kernel-64k-debug-modules-core 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 kernel-64k-debug-modules-extra 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 kernel-64k-devel 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 kernel-64k-devel-matched 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 kernel-64k-modules 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 kernel-64k-modules-core 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 kernel-64k-modules-extra 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 kernel-abi-stablelists 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 kernel-core 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 kernel-cross-headers 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 kernel-debug 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 kernel-debug-core 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 kernel-debug-devel 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 kernel-debug-devel-matched 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 kernel-debug-modules 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 kernel-debug-modules-core 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 kernel-debug-modules-extra 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 kernel-debug-uki-virt 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 kernel-devel 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 kernel-devel-matched 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 kernel-doc 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 kernel-headers 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 kernel-modules 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 kernel-modules-core 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 kernel-modules-extra 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 kernel-rt 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 kernel-rt-core 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 kernel-rt-debug 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 kernel-rt-debug-core 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 kernel-rt-debug-devel 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 kernel-rt-debug-modules 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 kernel-rt-debug-modules-core 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 kernel-rt-debug-modules-extra 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 kernel-rt-devel 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 kernel-rt-modules 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 kernel-rt-modules-core 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 kernel-rt-modules-extra 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 kernel-tools 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 kernel-tools-libs 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 kernel-tools-libs-devel 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 kernel-uki-virt 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 kernel-zfcpdump 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 kernel-zfcpdump-core 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 kernel-zfcpdump-devel 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 kernel-zfcpdump-devel-matched 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 kernel-zfcpdump-modules 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 kernel-zfcpdump-modules-core 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 kernel-zfcpdump-modules-extra 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 libperf 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 perf 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 python3-perf 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 rtla 0 5.14.0-427.42.1.el9_4
AlmaLinux:9 rv 0 5.14.0-427.42.1.el9_4
Debian:11 linux 0 No fix
Debian:11 linux-6.1 0 6.1.119-1~deb11u1
Debian:12 linux 0 6.1.112-1
Debian:13 linux 0 6.9.7-1
Linux Kernel 0 6.1.107
Linux Kernel 4.13.0 6.1.107
Red Hat:enterprise_linux:8::baseos bpftool 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::baseos bpftool-debuginfo 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::baseos kernel 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::baseos kernel-abi-stablelists 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::baseos kernel-core 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::baseos kernel-cross-headers 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::baseos kernel-debug 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::baseos kernel-debug-core 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::baseos kernel-debug-debuginfo 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::baseos kernel-debug-devel 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::baseos kernel-debug-modules 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::baseos kernel-debug-modules-extra 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::baseos kernel-debuginfo 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::baseos kernel-debuginfo-common-aarch64 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::baseos kernel-debuginfo-common-ppc64le 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::baseos kernel-debuginfo-common-s390x 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::baseos kernel-debuginfo-common-x86_64 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::baseos kernel-devel 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::baseos kernel-doc 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::baseos kernel-headers 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::baseos kernel-modules 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::baseos kernel-modules-extra 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::baseos kernel-tools 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::baseos kernel-tools-debuginfo 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::baseos kernel-tools-libs 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::baseos kernel-tools-libs-devel 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::baseos kernel-zfcpdump 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::baseos kernel-zfcpdump-core 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::baseos kernel-zfcpdump-debuginfo 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::baseos kernel-zfcpdump-devel 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::baseos kernel-zfcpdump-modules 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::baseos kernel-zfcpdump-modules-extra 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::baseos perf 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::baseos perf-debuginfo 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::baseos python3-perf 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::baseos python3-perf-debuginfo 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::crb bpftool 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::crb bpftool-debuginfo 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::crb kernel 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::crb kernel-abi-stablelists 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::crb kernel-core 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::crb kernel-cross-headers 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::crb kernel-debug 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::crb kernel-debug-core 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::crb kernel-debug-debuginfo 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::crb kernel-debug-devel 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::crb kernel-debug-modules 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::crb kernel-debug-modules-extra 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::crb kernel-debuginfo 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::crb kernel-debuginfo-common-aarch64 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::crb kernel-debuginfo-common-ppc64le 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::crb kernel-debuginfo-common-s390x 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::crb kernel-debuginfo-common-x86_64 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::crb kernel-devel 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::crb kernel-doc 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::crb kernel-headers 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::crb kernel-modules 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::crb kernel-modules-extra 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::crb kernel-tools 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::crb kernel-tools-debuginfo 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::crb kernel-tools-libs 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::crb kernel-tools-libs-devel 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::crb kernel-zfcpdump 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::crb kernel-zfcpdump-core 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::crb kernel-zfcpdump-debuginfo 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::crb kernel-zfcpdump-devel 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::crb kernel-zfcpdump-modules 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::crb kernel-zfcpdump-modules-extra 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::crb perf 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::crb perf-debuginfo 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::crb python3-perf 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::crb python3-perf-debuginfo 0 0:4.18.0-553.22.1.el8_10
Red Hat:enterprise_linux:8::nfv kernel-rt 0 0:4.18.0-553.22.1.rt7.363.el8_10
Red Hat:enterprise_linux:8::nfv kernel-rt-core 0 0:4.18.0-553.22.1.rt7.363.el8_10
Red Hat:enterprise_linux:8::nfv kernel-rt-debug 0 0:4.18.0-553.22.1.rt7.363.el8_10
Red Hat:enterprise_linux:8::nfv kernel-rt-debug-core 0 0:4.18.0-553.22.1.rt7.363.el8_10
Red Hat:enterprise_linux:8::nfv kernel-rt-debug-debuginfo 0 0:4.18.0-553.22.1.rt7.363.el8_10
Red Hat:enterprise_linux:8::nfv kernel-rt-debug-devel 0 0:4.18.0-553.22.1.rt7.363.el8_10
Red Hat:enterprise_linux:8::nfv kernel-rt-debug-kvm 0 0:4.18.0-553.22.1.rt7.363.el8_10
Red Hat:enterprise_linux:8::nfv kernel-rt-debug-modules 0 0:4.18.0-553.22.1.rt7.363.el8_10
Red Hat:enterprise_linux:8::nfv kernel-rt-debug-modules-extra 0 0:4.18.0-553.22.1.rt7.363.el8_10
Red Hat:enterprise_linux:8::nfv kernel-rt-debuginfo 0 0:4.18.0-553.22.1.rt7.363.el8_10
Red Hat:enterprise_linux:8::nfv kernel-rt-debuginfo-common-x86_64 0 0:4.18.0-553.22.1.rt7.363.el8_10
Red Hat:enterprise_linux:8::nfv kernel-rt-devel 0 0:4.18.0-553.22.1.rt7.363.el8_10
Red Hat:enterprise_linux:8::nfv kernel-rt-kvm 0 0:4.18.0-553.22.1.rt7.363.el8_10
Red Hat:enterprise_linux:8::nfv kernel-rt-modules 0 0:4.18.0-553.22.1.rt7.363.el8_10
Red Hat:enterprise_linux:8::nfv kernel-rt-modules-extra 0 0:4.18.0-553.22.1.rt7.363.el8_10
Red Hat:enterprise_linux:8::realtime kernel-rt 0 0:4.18.0-553.22.1.rt7.363.el8_10
Red Hat:enterprise_linux:8::realtime kernel-rt-core 0 0:4.18.0-553.22.1.rt7.363.el8_10
Red Hat:enterprise_linux:8::realtime kernel-rt-debug 0 0:4.18.0-553.22.1.rt7.363.el8_10
Red Hat:enterprise_linux:8::realtime kernel-rt-debug-core 0 0:4.18.0-553.22.1.rt7.363.el8_10
Red Hat:enterprise_linux:8::realtime kernel-rt-debug-debuginfo 0 0:4.18.0-553.22.1.rt7.363.el8_10
Red Hat:enterprise_linux:8::realtime kernel-rt-debug-devel 0 0:4.18.0-553.22.1.rt7.363.el8_10
Red Hat:enterprise_linux:8::realtime kernel-rt-debug-kvm 0 0:4.18.0-553.22.1.rt7.363.el8_10
Red Hat:enterprise_linux:8::realtime kernel-rt-debug-modules 0 0:4.18.0-553.22.1.rt7.363.el8_10

Related vulnerabilities