Cloudanix VulnDB

CVE-2024-57977

Medium · 5.5

CVSS

5.5

EPSS

0.2%

Published

Feb 27, 2025

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

A bug in how the system handles running out of memory with many processes can freeze parts of the machine, potentially requiring a reboot.

Exploitation
Local Privilege
Attacker needs
Low Privilege
Complexity
Low
Impact
Denial Of Service
Component
OS kernel
Class
Denial of service
Remediation
Patch
Effort
Low
Patch risk
Low

What it actually does

Soft lockup in mem_cgroup_scan_tasks during OOM when traversing thousands of tasks in a cgroup without rescheduling, causing watchdog timeout in console_unlock and printk paths.

Why it matters to the business

System availability loss and potential forced reboots on hosts running containers or workloads with large task counts in memory cgroups; high downstream prevalence amplifies operational risk across dependent systems.

How an attack unfolds

An attacker or workload triggers memory pressure leading to OOM kill in a cgroup containing ~56k tasks; the kernel's mem_cgroup_scan_tasks traversal exceeds watchdog thresholds, resulting in soft lockup and denial of service. Threat actor context from related kernel LPE issues may combine this for further impact.

How to fix it

Apply kernel patch adding cond_resched every 1000 iterations in mem_cgroup_scan_tasks and touch_softlockup_watchdog for global OOM; upgrade affected packages to fixed versions such as numpy (PyPI) 1.19 where applicable.

How to confirm the fix worked

Confirm presence of cond_resched calls in mem_cgroup_scan_tasks via source inspection or kernel version check; reproduce OOM with large task cgroups and verify no soft lockup in dmesg.

Typical attack path

  1. Identify or create memory cgroup with high task count
  2. Induce memory exhaustion to enter OOM path
  3. Trigger mem_cgroup_out_of_memory and scan_tasks loop
  4. Sustain traversal beyond 23s to hit soft lockup

How to detect it

Review dmesg and kernel logs for 'soft lockup' combined with 'mem_cgroup_scan_tasks' or 'dump_task' call traces; correlate with OOM killer activity in high-task cgroups.

  • soft lockup - CPU.*stuck.*VM Thread
  • mem_cgroup_scan_tasks+0x76/0x100
  • dump_task+0x114/0x130

What your security team should do

  • Prioritize patching on systems with containerized workloads or high task density cgroups
  • Monitor CISA KEV status and EPSS trend for escalation
  • Test OOM scenarios in staging with task counts exceeding 50k

The record

In the Linux kernel, the following vulnerability has been resolved: memcg: fix soft lockup in the OOM process A soft lockup issue was found in the product with about 56,000 tasks were in the OOM cgroup, it was traversing them when the soft lockup was triggered. watchdog: BUG: soft lockup - CPU#2 stuck for 23s! [VM Thread:1503066] CPU: 2 PID: 1503066 Comm: VM Thread Kdump: loaded Tainted: G Hardware name: Huawei Cloud OpenStack Nova, BIOS RIP: 0010:console_unlock+0x343/0x540 RSP: 0000:ffffb751447db9a0 EFLAGS: 00000247 ORIG_RAX: ffffffffffffff13 RAX: 0000000000000001 RBX: 0000000000000000 RCX: 00000000ffffffff RDX: 0000000000000000 RSI: 0000000000000004 RDI: 0000000000000247 RBP: ffffffffafc71f90 R08: 0000000000000000 R09: 0000000000000040 R10: 0000000000000080 R11: 0000000000000000 R12: ffffffffafc74bd0 R13: ffffffffaf60a220 R14: 0000000000000247 R15: 0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f2fe6ad91f0 CR3: 00000004b2076003 CR4: 0000000000360ee0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace: vprintk_emit+0x193/0x280 printk+0x52/0x6e dump_task+0x114/0x130 mem_cgroup_scan_tasks+0x76/0x100 dump_header+0x1fe/0x210 oom_kill_process+0xd1/0x100 out_of_memory+0x125/0x570 mem_cgroup_out_of_memory+0xb5/0xd0 try_charge+0x720/0x770 mem_cgroup_try_charge+0x86/0x180 mem_cgroup_try_charge_delay+0x1c/0x40 do_anonymous_page+0xb5/0x390 handle_mm_fault+0xc4/0x1f0 This is because thousands of processes are in the OOM cgroup, it takes a long time to traverse all of them. As a result, this lead to soft lockup in the OOM process. To fix this issue, call 'cond_resched' in the 'mem_cgroup_scan_tasks' function per 1000 iterations. For global OOM, call 'touch_softlockup_watchdog' per 1000 iterations to avoid this issue.

Affected packages

Ecosystem Package Introduced Fixed
AlmaLinux:10 kernel 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-64k 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-64k-core 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-64k-debug 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-64k-debug-core 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-64k-debug-devel 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-64k-debug-devel-matched 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-64k-debug-modules 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-64k-debug-modules-core 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-64k-debug-modules-extra 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-64k-devel 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-64k-devel-matched 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-64k-modules 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-64k-modules-core 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-64k-modules-extra 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-abi-stablelists 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-core 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-cross-headers 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-debug 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-debug-core 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-debug-devel 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-debug-devel-matched 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-debug-modules 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-debug-modules-core 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-debug-modules-extra 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-debug-uki-virt 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-devel 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-devel-matched 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-doc 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-headers 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-modules 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-modules-core 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-modules-extra 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-modules-extra-matched 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-rt 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-rt-64k 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-rt-64k-core 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-rt-64k-debug 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-rt-64k-debug-core 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-rt-64k-debug-devel 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-rt-64k-debug-modules 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-rt-64k-debug-modules-core 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-rt-64k-debug-modules-extra 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-rt-64k-devel 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-rt-64k-modules 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-rt-64k-modules-core 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-rt-64k-modules-extra 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-rt-core 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-rt-debug 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-rt-debug-core 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-rt-debug-devel 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-rt-debug-modules 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-rt-debug-modules-core 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-rt-debug-modules-extra 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-rt-devel 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-rt-modules 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-rt-modules-core 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-rt-modules-extra 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-tools 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-tools-libs 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-tools-libs-devel 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-uki-virt 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-uki-virt-addons 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-zfcpdump 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-zfcpdump-core 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-zfcpdump-devel 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-zfcpdump-devel-matched 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-zfcpdump-modules 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-zfcpdump-modules-core 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-zfcpdump-modules-extra 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 libperf 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 perf 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 python3-perf 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 rtla 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 rv 0 6.12.0-124.8.1.el10_1
Debian:11 linux 0 No fix
Debian:11 linux-6.1 0 6.1.137-1~deb11u1
Debian:12 linux 0 No fix
Debian:12 linux 0 6.1.133-1
Debian:13 linux 0 No fix
Debian:13 linux 0 6.12.13-1
Linux Kernel 3.6.0 5.4.291
Ubuntu:24.10 linux-aws 0 6.11.0-1014.15

Related vulnerabilities