🇰🇷 한글 설명
Linux 커널의 perf/smmuv3 드라이버에서 arm_smmu_pmu_init() 함수가 platform_driver_register() 실패 시 cpuhp_setup_state_multi()로 등록한 핫플러그 콜백을 제거하지 않아 리소스 누수가 발생합니다. 이는 arm_ccn_init()에서 이미 해결된 것과 같은 유형의 문제입니다. 수정은 실패 경로에서 cpuhp_remove_multi_state()를 호출하여 콜백을 정리하는 것입니다.
💡 쉬운 설명
컴퓨터 부품을 관리하는 소프트웨어가 일부 작업이 실패했을 때 뒷정리를 제대로 하지 않아 메모리 같은 자원이 조금씩 낭비됩니다. 이 문제는 보안 침해보다는 시스템 안정성에 영향을 주는 결함입니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
perf/smmuv3: Fix hotplug callback leak in arm_smmu_pmu_init()
arm_smmu_pmu_init() won't remove the callback added by
cpuhp_setup_state_multi() when platform_driver_register() failed. Remove
the callback by cpuhp_remove_multi_state() in fail path.
Similar to the handling of arm_ccn_init() in commit 26242b330093 ("bus:
arm-ccn: Prevent hotplug callback leak")
📍 영향받는 시스템
ARM SMMUv3 PMU 드라이버를 포함한 수정 이전의 Linux 커널 버전 (ARM64 서버/장치)
⚔️ 공격 벡터
로컬 사용자가 드라이버 초기화 실패 상황을 유도하여 자원 누수를 일으킬 수 있으나, 원격 공격 경로는 명확하지 않음
🛡️ 대응 방법
패치가 적용된 Linux 커널 버전으로 업데이트 (배포판 보안 업데이트 적용)
🔧 검증 코드
출력된 커널 버전을 배포판 보안 공지에서 CVE-2022-50510 수정 포함 여부와 대조하며, 커널 소스를 사용하는 경우 drivers/perf/arm_smmuv3_pmu.c에 cpuhp_remove_multi_state 호출이 실패 경로에 있는지 확인합니다.