CVE-2022-50636 json
PCI: Fix pci_device_is_present() for VFs by checking PF
published 2025-12-09 11 mo ago modified 2026-06-17 4 mo ago also EUVD-2022-55720
- cvss
- —
- not scored
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.2%
- EPSS 0.2% chance of exploitation in 30 days, percentile 11%
- public exploits
- 0
- none known
Summary
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]
Patch / fix
- Linux Linux 4.14.303, 4.19.270, 5.4.229, 5.10.163, 5.15.87, 6.0.18, 6.1.4, 6.2
- linux Debian 14, Debian 13, Debian 12 6.1.4-1
debian advisories DEBIAN-CVE-2022-50636
- linux Ubuntu 18.04 LTS 4.15.0-208.220
- linux Ubuntu 20.04 LTS 5.4.0-144.161
- linux Ubuntu 22.04 LTS 5.15.0-69.76
- linux-aws Ubuntu 18.04 LTS 4.15.0-1153.166
- linux-aws Ubuntu 20.04 LTS 5.4.0-1097.105
- linux-aws Ubuntu 22.04 LTS 5.15.0-1033.37
- linux-gcp Ubuntu 20.04 LTS 5.4.0-1101.110
- linux-gcp Ubuntu 22.04 LTS 5.15.0-1031.38
ubuntu advisories UBUNTU-CVE-2022-50636
Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
- kernel RHEL 9 5.14.0-362.8.1.el9_3
- rv RHEL 9 5.14.0-362.8.1.el9_3
- perf RHEL 9 5.14.0-362.8.1.el9_3
- rtla RHEL 9 5.14.0-362.8.1.el9_3
- bpftool RHEL 9 7.2.0-362.8.1.el9_3
- libperf RHEL 9 5.14.0-362.8.1.el9_3
- kernel-rt RHEL 9 5.14.0-362.8.1.el9_3
- kernel-64k RHEL 9 5.14.0-362.8.1.el9_3
red hat advisories RHSA-2023:6583
- kernel-64kb SLES 15 SP4-LTSS, SLE High Performance Computing 15 SP4-LTSS, SLE High Performance Computing 15 SP4-ESPOS 5.14.21-150400.24.194.1
- kernel-syms SLES for SAP 15 SP4, SLES 15 SP4-LTSS, SLE High Performance Computing 15 SP4-LTSS +1 more 5.14.21-150400.24.194.1
- kernel-source SLES for SAP 15 SP4, SLES 15 SP4-LTSS, SLE High Performance Computing 15 SP4-LTSS +1 more 5.14.21-150400.24.194.1
- kernel-default SLES for SAP 15 SP4, SLES 15 SP4-LTSS, SLE Micro 5.4 +5 more 5.14.21-150400.24.194.1
- kernel-obs-build SLES for SAP 15 SP4, SLES 15 SP4-LTSS, SLE High Performance Computing 15 SP4-LTSS +1 more 5.14.21-150400.24.194.1
- kernel-default-base SLES for SAP 15 SP4, SLES 15 SP4-LTSS, SLE Micro 5.4 +3 more 5.14.21-150400.24.194.1.150400.24.98.3
- kernel-rt SLE Micro 5.4, SLE Micro 5.3 5.14.21-150400.15.142.1
- kernel-source-rt SLE Micro 5.4, SLE Micro 5.3 5.14.21-150400.15.142.1
suse advisories SUSE-SU-2026:0617-1SUSE-SU-2026:0411-1SUSE-SU-2026:0317-1SUSE-SU-2026:0316-1SUSE-SU-2026:0263-1
- git.kernel.org/stable/c/f4b44c7766dae2b8681f621941cabe9f14066d59 commit
- git.kernel.org/stable/c/643d77fda08d06f863af35e80a7e517ea61d9629 commit
- git.kernel.org/stable/c/65bd0962992abd42e77a05e68c7b40e7c73726d1 commit
- git.kernel.org/stable/c/99ef6cc791584495987dd11b14769b450dfa5820 commit
- git.kernel.org/stable/c/67fd41bbb0f51aa648a47f728b99e6f1fa2ccc34 commit
- git.kernel.org/stable/c/81565e51ccaf6fff8910e997ee22e16b5e1dabc3 commit
- git.kernel.org/stable/c/518573988a2f14f517403db2ece5ddaefba21e94 commit
- git.kernel.org/stable/c/98b04dd0b4577894520493d96bc4623387767445 commit
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2022-50636 updated cvss 5.8
kernel: PCI: Fix pci_device_is_present() for VFs by checking PF
-
Red Hat Enterprise Linux 6 perf, kernel, python-perf, kernel-kdump, kernel-firmware, kernel-bootwrapper, +1 moreaffected: workaround, no fix planned “Out of support scope”
-
Red Hat Enterprise Linux 7 perf, kernel, bpftool, kernel-rt, python-perf, kernel-kdump, +8 more Red Hat Enterprise Linux 8 perf, kernel, bpftool, kernel-rt, kernel-core, kernel-tools, +29 more Red Hat Enterprise Linux 9 rv, perf, rtla, kernel, bpftool, libperf, +83 moreaffected: workaround, no fix available
-
Red Hat Enterprise Linux 10 kernelnot affected: vulnerable code not present
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
Exploit prediction
0.21% chance of exploitation in the next 30 days, higher than 11% of all scored CVEs (FIRST EPSS, 2026-11-08).
Affected products
- Linux Linux
Classification
- Technology feeds
References
- git.kernel.org /stable/c/f4b44c7766dae2b8681f621941cabe9f14066d59
- git.kernel.org /stable/c/643d77fda08d06f863af35e80a7e517ea61d9629
- git.kernel.org /stable/c/65bd0962992abd42e77a05e68c7b40e7c73726d1
- git.kernel.org /stable/c/99ef6cc791584495987dd11b14769b450dfa5820
- git.kernel.org /stable/c/67fd41bbb0f51aa648a47f728b99e6f1fa2ccc34
- git.kernel.org /stable/c/81565e51ccaf6fff8910e997ee22e16b5e1dabc3
- git.kernel.org /stable/c/518573988a2f14f517403db2ece5ddaefba21e94
- git.kernel.org /stable/c/98b04dd0b4577894520493d96bc4623387767445
Sources
- CVE List CVE-2022-50636
- NVD CVE-2022-50636
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.