🔍 CVE-2026-81015

7.8
CVSS Score
HIGH
2026-09-11
2026-10-19 09:17
✅ 완료

🇰🇷 한글 설명

Linux 커널의 amd_pmc 드라이버에서 STB 초기화 실패 시 LPS0 핸들러와 debugfs 디렉토리가 제대로 해제되지 않는 취약점입니다. 이로 인해 모듈 재로드 시 커널 리스트가 손상되어 커널 패닉(Kernel BUG)이 발생하거나, 잘못된 드라이버 상태로 인해 시스템 오류가 발생할 수 있습니다.

💡 쉬운 설명

컴퓨터 부품을 제어하는 소프트웨어가 작동 중에 오류가 나면, 사용했던 자원을 깨끗이 치우지 못하고 남겨두는 문제입니다. 이 상태에서 소프트웨어를 다시 실행하려고 하면 시스템이 충돌하여 컴퓨터가 멈출 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: platform/x86/amd/pmc: Fix LPS0 and debugfs leaks when STB init fails amd_pmc_probe() registers the LPS0 s2idle handler with acpi_register_lps0_dev() and creates the driver's debugfs directory before calling amd_stb_s2d_init(), which is the last step in probe that can fail. When amd_stb_s2d_init() fails (for example the S2D telemetry region cannot be ioremapped on a long-running system, or the SMU rejects the S2D setup) the error path only calls pci_dev_put() and returns. This leaves amd_pmc_s2idle_dev_ops on the global lps0_s2idle_devops_head list and leaks the debugfs directory, while the devm-managed resources backing the handler are torn down. Reloading the module then walks the corrupted list in acpi_register_lps0_dev() and hits: 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 Even without a reload, the stale registration means the next s2idle transition calls into torn-down driver state. Unwind the debugfs directory and the LPS0 registration on the amd_stb_s2d_init() error path. acpi_unregister_lps0_dev() is safe to call unconditionally here: it is guarded on the same conditions as acpi_register_lps0_dev(), which is exactly what amd_pmc_remove() already relies on.

📍 영향받는 시스템

Linux kernel (amd_pmc driver component)

⚔️ 공격 벡터

로컬 공격자가 특정 하드웨어 초기화 실패 상황을 유도하여 커널 패닉을 일으키거나 시스템 안정성을 해칠 수 있음

🛡️ 대응 방법

amd_stb_s2d_init() 실패 시 LPS0 등록 해제 및 debugfs 디렉토리를 정리하도록 커널 패치를 적용해야 함

🔧 검증 코드

출력된 커널 버전을 확인하여 해당 취약점이 수정된 최신 패치 버전인지 확인합니다.

Shell / Script
uname -r

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

💻 영향받는 소프트웨어

Linux Kernel