CVE-2022-50636
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
09/12/2025
Last modified:
09/12/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
PCI: Fix pci_device_is_present() for VFs by checking PF<br />
<br />
pci_device_is_present() previously didn&#39;t work for VFs because it reads the<br />
Vendor and Device ID, which are 0xffff for VFs, which looks like they<br />
aren&#39;t present. Check the PF instead.<br />
<br />
Wei Gong reported that if virtio I/O is in progress when the driver is<br />
unbound or "0" is written to /sys/.../sriov_numvfs, the virtio I/O<br />
operation hangs, which may result in output like this:<br />
<br />
task:bash state:D stack: 0 pid: 1773 ppid: 1241 flags:0x00004002<br />
Call Trace:<br />
schedule+0x4f/0xc0<br />
blk_mq_freeze_queue_wait+0x69/0xa0<br />
blk_mq_freeze_queue+0x1b/0x20<br />
blk_cleanup_queue+0x3d/0xd0<br />
virtblk_remove+0x3c/0xb0 [virtio_blk]<br />
virtio_dev_remove+0x4b/0x80<br />
...<br />
device_unregister+0x1b/0x60<br />
unregister_virtio_device+0x18/0x30<br />
virtio_pci_remove+0x41/0x80<br />
pci_device_remove+0x3e/0xb0<br />
<br />
This happened because pci_device_is_present(VF) returned "false" in<br />
virtio_pci_remove(), so it called virtio_break_device(). The broken vq<br />
meant that vring_interrupt() skipped the vq.callback() that would have<br />
completed the virtio I/O operation via virtblk_done().<br />
<br />
[bhelgaas: commit log, simplify to always use pci_physfn(), add stable tag]
Impact
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/518573988a2f14f517403db2ece5ddaefba21e94
- https://git.kernel.org/stable/c/643d77fda08d06f863af35e80a7e517ea61d9629
- https://git.kernel.org/stable/c/65bd0962992abd42e77a05e68c7b40e7c73726d1
- https://git.kernel.org/stable/c/67fd41bbb0f51aa648a47f728b99e6f1fa2ccc34
- https://git.kernel.org/stable/c/81565e51ccaf6fff8910e997ee22e16b5e1dabc3
- https://git.kernel.org/stable/c/98b04dd0b4577894520493d96bc4623387767445
- https://git.kernel.org/stable/c/99ef6cc791584495987dd11b14769b450dfa5820
- https://git.kernel.org/stable/c/f4b44c7766dae2b8681f621941cabe9f14066d59



