🔍 CVE-2022-50636

0.0
CVSS Score
UNKNOWN
2025-12-09
2026-11-10 12:10
✅ 완료

🇰🇷 한글 설명

Linux 커널에서 pci_device_is_present() 함수가 SR-IOV 가상 함수(VF)에 대해 제대로 동작하지 않던 문제를 수정했습니다. 기존에는 VF의 벤더/디바이스 ID가 0xffff로 읽혀 장치가 없는 것으로 잘못 판단되었고, 이로 인해 virtio I/O 진행 중 드라이버 언바인드나 sriov_numvfs를 0으로 설정할 때 I/O가 영원히 멈추는 교착이 발생할 수 있었습니다. 수정은 항상 물리 함수(PF)를 확인하도록 변경하는 것입니다.

💡 쉬운 설명

가상 PCI 장치(VF)가 실제로 존재하는지 잘못 판단해서, 장치를 제거하는 중에 디스크 입출력이 멈추는 문제가 있었습니다. 이 수정은 상위 물리 장치를 기준으로 확인하도록 바꿔 이 멈춤 현상을 막습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: PCI: Fix pci_device_is_present() for VFs by checking PF pci_device_is_present() previously didn't work for VFs because it reads the Vendor and Device ID, which are 0xffff for VFs, which looks like they aren't present. Check the PF instead. Wei Gong reported that if virtio I/O is in progress when the driver is unbound or "0" is written to /sys/.../sriov_numvfs, the virtio I/O operation hangs, which may result in output like this: task:bash state:D stack: 0 pid: 1773 ppid: 1241 flags:0x00004002 Call Trace: schedule+0x4f/0xc0 blk_mq_freeze_queue_wait+0x69/0xa0 blk_mq_freeze_queue+0x1b/0x20 blk_cleanup_queue+0x3d/0xd0 virtblk_remove+0x3c/0xb0 [virtio_blk] virtio_dev_remove+0x4b/0x80 ... device_unregister+0x1b/0x60 unregister_virtio_device+0x18/0x30 virtio_pci_remove+0x41/0x80 pci_device_remove+0x3e/0xb0 This happened because pci_device_is_present(VF) returned "false" in virtio_pci_remove(), so it called virtio_break_device(). The broken vq meant that vring_interrupt() skipped the vq.callback() that would have completed the virtio I/O operation via virtblk_done(). [bhelgaas: commit log, simplify to always use pci_physfn(), add stable tag]

📍 영향받는 시스템

SR-IOV VF와 virtio 장치를 사용하는 수정 이전 Linux 커널 버전 (정확한 영향 범위는 해당 배포판 커널 패치 목록 확인 필요)

⚔️ 공격 벡터

CVSS 점수가 0.0으로 공격 벡터가 명시되지 않았으며, 로컬 관리자가 드라이버 언바인드나 sriov_numvfs 변경을 수행할 때 발생하는 서비스 중단(교착) 문제입니다.

🛡️ 대응 방법

배포판 벤더가 제공하는 이 CVE 수정이 포함된 최신 Linux 커널 업데이트를 적용하고 재부팅하십시오.

🔧 검증 코드

출력된 커널 버전을 배포판 보안 공지에서 이 CVE 수정이 포함된 패치 버전과 비교하고, 해당 버전 이상이면 수정이 적용된 것입니다.

Shell / Script
uname -r

💻 영향받는 소프트웨어

Linux Kernel