🇰🇷 한글 설명
Linux 커널의 amd-pstate 드라이버에서 CPU 정책이 없는 경우 NULL 포인터를 참조하는 취약점이 발견되었습니다. CPU 핫플러그 또는 드라이버 해제 과정에서 경합 조건이 발생할 경우 NULL 포인터 역참조로 인해 시스템 충돌이 발생할 수 있습니다.
💡 쉬운 설명
컴퓨터의 CPU 성능을 조절하는 기능에서, CPU가 갑자기 꺼지거나 설정이 바뀌는 순간 프로그램이 잘못된 주소를 참조하여 시스템이 멈출 수 있는 문제입니다. 이는 하드웨어 설정 변경 시 발생하는 일시적인 충돌 상황에서 발생합니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
cpufreq/amd-pstate: handle missing policy in dynamic EPP callbacks
cpufreq_cpu_get() returns NULL when no cpufreq policy is associated with
the requested CPU, for example because the CPU is offline or the policy
has already been torn down. Both amd_pstate_power_supply_notifier() and
amd_pstate_profile_set() acquire a policy via cpufreq_cpu_get() and then
pass that pointer to amd_pstate_get_balanced_epp() and
amd_pstate_set_epp(), which dereference it unconditionally. A racing
CPU hotplug or driver teardown can therefore lead to a NULL pointer
dereference on either of these dynamic EPP paths.
The third cpufreq_cpu_get() caller in this file, amd_pstate_verify(),
already handles the NULL case. Bring the two new callers in line with
that pattern: return NOTIFY_OK from the power-supply notifier (matching
the other "nothing to do" exits) and -ENODEV from amd_pstate_profile_set()
(the usual cpufreq error for a missing CPU policy).
Found by code inspection; not tested on hardware.
📍 영향받는 시스템
Linux kernel (amd-pstate 드라이버를 사용하는 AMD CPU 시스템)
⚔️ 공격 벡터
CPU 핫플러그 또는 드라이버 해제 시 발생하는 경합 조건을 이용한 로컬 공격
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인하십시오.