Skip to content
CVE PROGRAM SOURCE RECORDUnscored

CVE-2024-41023

sched/deadline: Fix task_struct reference leak

Description

In the Linux kernel, the following vulnerability has been resolved: sched/deadline: Fix task_struct reference leak During the execution of the following stress test with linux-rt: stress-ng --cyclic 30 --timeout 30 --minimize --quiet kmemleak frequently reported a memory leak concerning the task_struct: unreferenced object 0xffff8881305b8000 (size 16136): comm "stress-ng", pid 614, jiffies 4294883961 (age 286.412s) object hex dump (first 32 bytes): 02 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .@.............. 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ debug hex dump (first 16 bytes): 53 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00 S............... backtrace: [<00000000046b6790>] dup_task_struct+0x30/0x540 [<00000000c5ca0f0b>] copy_process+0x3d9/0x50e0 [<00000000ced59777>] kernel_clone+0xb0/0x770 [<00000000a50befdc>] __do_sys_clone+0xb6/0xf0 [<000000001dbf2008>] do_syscall_64+0x5d/0xf0 [<00000000552900ff>] entry_SYSCALL_64_after_hwframe+0x6e/0x76 The issue occurs in start_dl_timer(), which increments the task_struct reference count and sets a timer. The timer callback, dl_task_timer, is supposed to decrement the reference count upon expiration. However, if enqueue_task_dl() is called before the timer expires and cancels it, the reference count is not decremented, leading to the leak. This patch fixes the reference leak by ensuring the task_struct reference count is properly decremented when the timer is canceled.

Affected products

Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.

Linux Linux

Default version status: unaffected

  • feff2e65efd8d84cf831668e182b2ce73c604bbb to < f8005214946fd1d9fefdeff19c6ce46d60de2cefaffected
  • feff2e65efd8d84cf831668e182b2ce73c604bbb to < 7a54d31face626f62de415ebe77b43f76c3ffaf4affected
  • feff2e65efd8d84cf831668e182b2ce73c604bbb to < b58652db66c910c2245f5bee7deca41c12d707b9affected
  • f0e1c1d8ff908a39dd42e723d08f104505dfa601affected
  • 184c8ab5342450c4ae6fc5d937f9bb06c620dcf1affected
  • 4.19.257 to < 4.20affected
  • 5.4.212 to < 5.5affected

Linux Linux

Default version status: affected

  • 5.10affected
  • 0 to < 5.10unaffected
  • 6.6.160 to ≤ 6.6.*unaffected
  • 6.9.10 to ≤ 6.9.*unaffected
  • 6.10 to ≤ *unaffected

References