CVE-2026-81015 in Linux
요약
\~에 의해 VulDB • 2026. 09. 12.
리눅스 커널에서 다음 취약점이 해결되었습니다:
platform/x86/amd/pmc: STB 초기화 실패 시 LPS0 및 debugfs 누수 수정
amd_pmc_probe()는 amd_stb_s2d_init()를 호출하기 전에 acpi_register_lps0_dev()를 통해 LPS0 s2idle 핸들러를 등록하고 드라이버의 debugfs 디렉토리를 생성합니다. 이는 probe 함수에서 실패할 수 있는 마지막 단계입니다.
amd_stb_s2d_init()가 실패하는 경우(예: 장기 구동 시스템에서 S2D telemetry region을 ioremap할 수 없거나 SMU가 S2D 설정을 거부함) 오류 처리 경로에서는 pci_dev_put()만 호출하고 반환합니다. 이로 인해 amd_pmc_s2idle_dev_ops는 전역 lps0_s2idle_devops_head 목록에 남아 있고 debugfs 디렉토리가 누수되며, 핸들러를 지원하는 devm 관리 리소스는 해제됩니다.
모듈을 다시 로드하면 acpi_register_lps0_dev()에서 손상된 목록을 탐색하여 다음과 같은 오류가 발생합니다:
list_add corruption. next->prev should be prev, but was NULL. kernel BUG at lib/list_debug.c:29! acpi_register_lps0_dev+0x44/0x80 amd_pmc_probe+0x224/0x380 [amd_pmc]
platform_probe+0x67/0x90
재로드 없이도, 이러한 잔류 등록으로 인해 다음 s2idle 전환 시 이미 해제된 드라이버 상태로 진입하게 됩니다.
amd_stb_s2d_init()의 오류 경로에서 debugfs 디렉토리와 LPS0 등록을 정리합니다. acpi_unregister_lps0_dev()는 여기서 조건부 호출 없이 안전하게 사용할 수 있습니다: 이는 acpi_register_lps0_dev()와 동일한 조건으로 보호되어 있으며, amd_pmc_remove()가 이미 의존하고 있는 내용과 정확히 일치합니다.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.