🇰🇷 한글 설명
Linux 커널의 PCI/IOV 구성에서 SR-IOV 활성화/비활성화 작업과 핫플러그(Hotplug) 작업 간의 경쟁 상태(Race Condition) 취약점입니다. 이전의 수정 시도가 데드락(Deadlock)을 유발함에 따라, 호출 체인 상위 단계인 sriov_numvfs_store()에서 잠금(Lock)을 획득하도록 로직을 재설계하여 해결되었습니다.
💡 쉬운 설명
컴퓨터 부품을 끄지 않고 교체하는 기능과 가상 장치를 만드는 기능이 동시에 작동할 때 시스템이 충돌하거나 멈출 수 있는 문제입니다. 이 문제를 해결하기 위해 작업 순서를 안전하게 조정하는 패치가 적용되었습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
PCI/IOV: Fix race between SR-IOV enable/disable and hotplug
Commit 05703271c3cd ("PCI/IOV: Add PCI rescan-remove locking when
enabling/disabling SR-IOV") tried to fix a race between the VF removal
inside sriov_del_vfs() and concurrent hot unplug by taking the PCI
rescan/remove lock in sriov_del_vfs(). Similarly the PCI rescan/remove lock
was also taken in sriov_add_vfs() to protect addition of VFs.
This approach however causes deadlock on trying to remove PFs with SR-IOV
enabled because PFs disable SR-IOV during removal and this removal happens
under the PCI rescan/remove lock. So the original fix had to be reverted.
Instead of taking the PCI rescan/remove lock in sriov_add_vfs() and
sriov_del_vfs(), fix the race that occurs with SR-IOV enable and disable vs
hotplug higher up in the callchain by taking the lock in
sriov_numvfs_store() before calling into the driver's sriov_configure()
callback.
📍 영향받는 시스템
SR-IOV 기능을 사용하는 Linux 커널 기반 시스템
⚔️ 공격 벡터
로컬 공격자가 SR-IOV 설정 변경과 PCI 장치 핫플러그를 동시에 유도하여 시스템 데드락 유발
🛡️ 대응 방법
해당 패치가 포함된 최신 Linux 커널 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인