🔍 CVE-2024-41023

5.5
CVSS Score
MEDIUM
2024-07-29
2026-10-30 13:17
✅ 완료

🇰🇷 한글 설명

리눅스 커널의 sched/deadline 구성 요소에서 task_struct 참조 횟수가 제대로 감소하지 않는 메모리 누수 취약점이 발견되었습니다. 타이머가 만료되기 전에 특정 함수가 호출되어 타이머가 취소될 경우, 참조 카운트가 줄어들지 않아 메모리가 계속 점유되는 문제가 발생합니다.

💡 쉬운 설명

컴퓨터가 작업을 처리할 때 사용하는 메모리 관리 정보가 제대로 삭제되지 않고 계속 쌓이는 버그입니다. 이 문제가 지속되면 시스템의 메모리가 부족해져 성능이 떨어지거나 시스템이 멈출 수 있습니다.

🇺🇸 원문 (English)

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.

📍 영향받는 시스템

Linux kernel (sched/deadline 관련 기능이 활성화된 시스템)

⚔️ 공격 벡터

직접적인 공격보다는 특정 부하 테스트나 특정 시스템 호출 패턴을 통해 메모리 자원을 고갈시키는 방식의 서비스 거부(DoS) 유발 가능

🛡️ 대응 방법

리눅스 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 타이머 취소 시 참조 카운트가 정상적으로 감소하도록 수정해야 합니다.

🔧 검증 코드

출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인합니다.

Shell / Script
uname -r

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

💻 영향받는 소프트웨어

Linux Kernel