CVE-2025-38104 in Linux
요약
\~에 의해 VulDB • 2026. 05. 27.
리눅스 커널 패닉 또는 데드락(Deadlock) 로그입니다. 이 로그는 **AMD GPU 드라이버(amdgpu)**가 초기화되는 과정에서 **뮤텍스(Mutex) 잠금 경쟁(Mutex Lock Contention)**으로 인해 시스템이 멈춘 것을 보여줍니다.
### ???? 핵심 분석
1. **환경**: * **가상 머신**: `Microsoft Corporation Virtual Machine` (Hyper-V) * **GPU 드라이버**: `amdgpu` (AMD Radeon GPU용 리눅스 드라이버) * **SR-IOV 모드**: 로그에 `virt_rlcg_reg_rw`, `sriov_wreg` 등이 포함되어 있어, **SR-IOV(Single Root I/O Virtualization)** 환경에서 GPU를 가상 머신에 할당하여 사용하는 중입니다.
2. **문제 발생 지점**: * `amdgpu_virt_rlcg_reg_rw` 함수에서 뮤텍스를 획득하려고 시도 중입니다. * `__mutex_lock` → `lock_acquire` → `dump_stack` 순으로 호출되며, **뮤텍스를 기다리다가 타임아웃 또는 데드락 감지**되어 스택 트레이스를 출력했습니다. * 호출 체인: ``` amdgpu_virt_rlcg_reg_rw → amdgpu_sriov_wreg → gmc_v11_0_flush_gpu_tlb → gfx_v11_0_hw_init → amdgpu_device_init → amdgpu_driver_load_kms ``` * 즉, **GPU 하드웨어 초기화(GFX init) 단계**에서 TLB(Translation Lookaside Buffer) 플러시를 위해 GPU 레지스터에 접근하려다 잠금 충돌이 발생했습니다.
3. **원인 추정**: * **Hyper-V + SR-IOV + amdgpu 조합의 버그**: Hyper-V 호스트와 게스트 간 SR-IOV 통신(VFIO/MSI 등)에서 동기화 문제가 발생할 수 있습니다. * **커널 버전 불일치**: 호스트 커널과 게스트 커널 간 amdgpu 드라이버 구현 차이로 인한 데드락. * **GPU 펌웨어(Firmware) 문제**: GPU 펌웨어가 응답하지 않거나, RLCG(RLC Graphics) 레지스터 접근이 차단되어 뮤텍스 해제되지 않음. * **리소스 경쟁**: 다른 CPU 코어나 가상 코어에서 동일한 뮤텍스를 이미 잡고 있어, 현재 작업이 영원히 대기 상태가 됨.
---
### ✅ 해결 방안
#### 1. 커널 및 드라이버 업데이트 * **가장 우선순위 높은 조치**: 호스트(Hyper-V)와 게스트(VM)의 **리눅스 커널을 최신 안정 버전으로 업데이트**하세요. * 특히 `amdgpu` 드라이버의 SR-IOV 관련 패치는 자주 수정됩니다. * 예: Ubuntu 22.04 이상, RHEL 8.5+, Debian 11+ 등 최신 커널 사용.
#### 2. Hyper-V 설정 확인 * **SR-IOV 비활성화 테스트**: * Hyper-V 관리자에서 해당 VM의 설정 → 프로세서 → **가상 프로세서 확장 기능(Virtual Processor Extensions)** 또는 **SR-IOV** 관련 설정을 확인하세요. * 만약 SR-IOV를 사용하지 않는다면, **GPU 패스스루(Passthrough) 대신 가상 GPU(vGPU) 또는 기본 VGA 어댑터로 전환**하여 테스트해 보세요. * **Hyper-V 호스트 업데이트**: Hyper-V 호스트 OS(Windows Server 또는 Windows 10/11 Pro)의 최신 누적 업데이트를 적용하세요.
#### 3. 커널 부트 파라미터 조정 게스트 VM의 커널 부트 파라미터에 다음 옵션을 추가해 보세요: * `amdgpu.lockup_timeout=10000` (타임아웃 시간 증가, ms 단위) * `amdgpu.gpu_recovery=1` (GPU 복구 기능 활성화) * `iommu=pt` 또는 `amd_iommu=on` (IOMMU 설정 확인)
#### 4. GPU 펌웨어 확인 * `linux-firmware` 패키지를 최신 버전으로 업데이트하세요. ```bash sudo apt update && sudo apt install linux-firmware # Debian/Ubuntu sudo dnf update linux-firmware # RHEL/Fedora ```
#### 5. 대체 드라이버 또는 모드 사용 * 만약 `am
VulDB is the best source for vulnerability data and more expert information about this specific topic.