🔍 CVE-2021-47421

7.8
CVSS Score
HIGH
2024-05-21
2026-08-04 10:17
✅ 완료

🇰🇷 한글 설명

Linux 커널의 amdgpu 드라이버에서 PCI 오류 상태를 처리할 때 발생하는 데드락 취약점입니다. PCI 복구 과정에서 잠금(lock)을 획득하지 않은 상태로 해제하려고 시도하여 시스템이 멈출 수 있습니다.

💡 쉬운 설명

컴퓨터의 그래픽 카드 관련 소프트웨어에서 오류가 발생했을 때, 시스템이 스스로를 복구하려다 오히려 멈춰버리는 현상이 발생할 수 있습니다. 이는 특정 상황에서 소프트웨어가 자원을 관리하는 규칙을 어겨서 발생합니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: drm/amdgpu: handle the case of pci_channel_io_frozen only in amdgpu_pci_resume In current code, when a PCI error state pci_channel_io_normal is detectd, it will report PCI_ERS_RESULT_CAN_RECOVER status to PCI driver, and PCI driver will continue the execution of PCI resume callback report_resume by pci_walk_bridge, and the callback will go into amdgpu_pci_resume finally, where write lock is releasd unconditionally without acquiring such lock first. In this case, a deadlock will happen when other threads start to acquire the read lock. To fix this, add a member in amdgpu_device strucutre to cache pci_channel_state, and only continue the execution in amdgpu_pci_resume when it's pci_channel_io_frozen.

📍 영향받는 시스템

Linux kernel (amdgpu driver 포함 버전)

⚔️ 공격 벡터

PCI 버스에서 오류(PCI Error)를 유발하여 특정 복구 경로를 실행하게 함으로써 데드락 유도

🛡️ 대응 방법

Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트

🔧 검증 코드

출력된 커널 버전을 확인하여 해당 취약점이 해결된 패치 버전인지 확인

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