🇰🇷 한글 설명
Linux 커널의 amd isp4 드라이버에서 isp4sd_pwron_and_init() 함수가 초기화 실패 시 동일한 뮤텍스를 다시 획득하려 시도하여 발생하는 데드락 취약점입니다. 이 문제는 에러 경로에서 이미 보유 중인 ops_mutex를 재획득하려 함으로써 시스템이 멈추는 현상을 유발합니다.
💡 쉬운 설명
장치를 켜는 과정에서 오류가 발생하면, 컴퓨터가 이미 잡고 있는 열쇠를 다시 잡으려고 시도하다가 스스로 멈춰버리는 문제입니다. 이로 인해 시스템이 응답하지 않는 상태가 될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
media: amd: isp4: fix self-deadlock in isp4sd_pwron_and_init() error path
isp4sd_pwron_and_init() holds ops_mutex via guard(mutex) and, on any
init failure, jumps to err_deinit and calls isp4sd_pwroff_and_deinit().
That helper takes the same ops_mutex, re-acquiring a non-recursive mutex
already held by the current thread, so any init failure deadlocks.
Unwind the error path in stages instead, releasing only what each
failure point acquired. This also avoids the issues that an
unconditional teardown would hit at the earlier failures, such as a
runtime-PM underflow from pm_runtime_resume_and_get() and MMIO access
while the device is unpowered.
📍 영향받는 시스템
Linux kernel (amd isp4 driver 포함 버전)
⚔️ 공격 벡터
로컬 공격자가 하드웨어 초기화 실패를 유도하여 시스템 데드락을 발생시킬 수 있음
🛡️ 대응 방법
Linux 커널을 최신 패치가 적용된 버전으로 업데이트하여 에러 경로의 뮤텍스 해제 로직을 수정해야 함
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인하십시오.