🇰🇷 한글 설명
Linux 커널의 ARM SCMI pmdomain에서 프로바이더 등록 실패 시 이전에 생성된 generic power domains가 제거되지 않는 메모리 누수 취약점이 발견되었습니다. 이로 인해 genpd_debug_add() 호출 시 커널 페이지 요청 오류가 발생하여 시스템이 충돌할 수 있습니다.
💡 쉬운 설명
시스템의 전원 관리 기능을 설정하다가 오류가 발생했을 때, 사용하던 메모리를 제대로 돌려주지 않고 남겨두는 문제가 있습니다. 이 문제가 누적되면 컴퓨터의 핵심 시스템인 커널이 갑자기 멈추거나 꺼질 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
pmdomain: arm: scmi: Fix genpd leak on provider registration failure
If of_genpd_add_provider_onecell() fails during probe, the previously
created generic power domains are not removed, leading to a memory leak
and potential kernel crash later in genpd_debug_add().
Add proper error handling to unwind the initialized domains before
returning from probe to ensure all resources are correctly released on
failure.
Example crash trace observed without this fix:
| Unable to handle kernel paging request at virtual address fffffffffffffc70
| CPU: 1 UID: 0 PID: 1 Comm: swapper/0 Not tainted 6.18.0-rc1 #405 PREEMPT
| Hardware name: ARM LTD ARM Juno Development Platform/ARM Juno Development Platform
| pstate: 00000005 (nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
| pc : genpd_debug_add+0x2c/0x160
| lr : genpd_debug_init+0x74/0x98
| Call trace:
| genpd_debug_add+0x2c/0x160 (P)
| genpd_debug_init+0x74/0x98
| do_one_initcall+0xd0/0x2d8
| do_initcall_level+0xa0/0x140
| do_initcalls+0x60/0xa8
| do_basic_setup+0x28/0x40
| kernel_init_freeable+0xe8/0x170
| kernel_init+0x2c/0x140
| ret_from_fork+0x10/0x20
📍 영향받는 시스템
Linux kernel (ARM SCMI pmdomain 관련 구성 요소가 포함된 버전)
⚔️ 공격 벡터
직접적인 외부 공격은 어려우나, 특정 하드웨어 초기화 실패를 유도하여 시스템 가용성을 해치는 DoS(서비스 거부) 공격이 가능함
🛡️ 대응 방법
해당 취약점이 수정된 최신 Linux 커널 버전으로 업데이트하여 프로브 실패 시 리소스 해제 로직을 적용해야 함
🔧 검증 코드
출력된 커널 버전이 해당 패치가 적용된 최신 보안 업데이트 버전인지 확인하십시오.