🔍 CVE-2022-49784

5.5
CVSS Score
MEDIUM
2025-05-01
2026-11-05 20:17
✅ 완료

🇰🇷 한글 설명

Linux 커널의 AMD uncore 성능 모니터링 드라이버에서, CPU가 온라인 상태가 될 때 NB 및 LLC uncore 컨텍스트를 해제하면서 내부 events 배열을 해제하지 않아 메모리 누수가 발생합니다. 이는 kmemleak 탐지기로 확인되었으며, 해제 순서를 수정하여 해결되었습니다.

💡 쉬운 설명

컴퓨터가 특정 프로세서 기능을 켤 때 사용한 메모리 일부를 반납하지 않아 시간이 지나며 메모리가 조금씩 낭비됩니다. 이 문제는 장기간 가동되는 시스템에서 메모리 부족을 일으킬 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: perf/x86/amd/uncore: Fix memory leak for events array When a CPU comes online, the per-CPU NB and LLC uncore contexts are freed but not the events array within the context structure. This causes a memory leak as identified by the kmemleak detector. [...] unreferenced object 0xffff8c5944b8e320 (size 32): comm "swapper/0", pid 1, jiffies 4294670387 (age 151.072s) hex dump (first 32 bytes): 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 00 00 ................ backtrace: [<000000000759fb79>] amd_uncore_cpu_up_prepare+0xaf/0x230 [<00000000ddc9e126>] cpuhp_invoke_callback+0x2cf/0x470 [<0000000093e727d4>] cpuhp_issue_call+0x14d/0x170 [<0000000045464d54>] __cpuhp_setup_state_cpuslocked+0x11e/0x330 [<0000000069f67cbd>] __cpuhp_setup_state+0x6b/0x110 [<0000000015365e0f>] amd_uncore_init+0x260/0x321 [<00000000089152d2>] do_one_initcall+0x3f/0x1f0 [<000000002d0bd18d>] kernel_init_freeable+0x1ca/0x212 [<0000000030be8dde>] kernel_init+0x11/0x120 [<0000000059709e59>] ret_from_fork+0x22/0x30 unreferenced object 0xffff8c5944b8dd40 (size 64): comm "swapper/0", pid 1, jiffies 4294670387 (age 151.072s) hex dump (first 32 bytes): 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 00 00 ................ backtrace: [<00000000306efe8b>] amd_uncore_cpu_up_prepare+0x183/0x230 [<00000000ddc9e126>] cpuhp_invoke_callback+0x2cf/0x470 [<0000000093e727d4>] cpuhp_issue_call+0x14d/0x170 [<0000000045464d54>] __cpuhp_setup_state_cpuslocked+0x11e/0x330 [<0000000069f67cbd>] __cpuhp_setup_state+0x6b/0x110 [<0000000015365e0f>] amd_uncore_init+0x260/0x321 [<00000000089152d2>] do_one_initcall+0x3f/0x1f0 [<000000002d0bd18d>] kernel_init_freeable+0x1ca/0x212 [<0000000030be8dde>] kernel_init+0x11/0x120 [<0000000059709e59>] ret_from_fork+0x22/0x30 [...] Fix the problem by freeing the events array before freeing the uncore context.

📍 영향받는 시스템

AMD 프로세서를 사용하는 Linux 커널 (수정 이전 버전, 해당 uncore 드라이버 포함 빌드)

⚔️ 공격 벡터

원격 공격이 아닌 결함으로, 직접적인 악용 경로는 없고 지속적인 메모리 누수로 인한 서비스 저하가 주된 영향입니다.

🛡️ 대응 방법

패치가 적용된 최신 Linux 커널 버전으로 업데이트하거나 배포판 보안 업데이트를 설치합니다.

🔧 검증 코드

출력된 커널 버전이 배포판이 제공하는 패치된 버전 이상인지 확인하고, 해당 버전 정보는 배포판 보안 공지 또는 커널 changelog에서 대조합니다.

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