vdpa/vp_vdpa: fix kfree a wrong pointer in vp_vdpa_remove
Published Dec 30, 2025
6.2
MEDIUMCVSS 3.1
EPSS 0.20%
Description
In vp_vdpa_remove(), the code kfree(&vp_vdpa_mgtdev->mgtdev.id_table) uses a reference of pointer as the argument of kfree, which is the wrong pointer and then may hit crash like this:
Unable to handle kernel paging request at virtual address 00ffff003363e30c Internal error: Oops: 96000004 [#1] SMP Call trace: rb_next+0x20/0x5c ext4_readdir+0x494/0x5c4 [ext4] iterate_dir+0x168/0x1b4 __se_sys_getdents64+0x68/0x170 __arm64_sys_getdents64+0x24/0x30 el0_svc_common.constprop.0+0x7c/0x1bc do_el0_svc+0x2c/0x94 el0_svc+0x20/0x30 el0_sync_handler+0xb0/0xb4 el0_sync+0x160/0x180 Code: 54000220 f9400441 b4000161 aa0103e0 (f9400821) SMP: stopping secondary CPUs Starting crashdump kernel...
Affected products
-
- Version StatusaffectedConstraints
- Version StatusaffectedConstraints
- Version StatusaffectedConstraints
- Version
-
- Version 5.19StatusaffectedConstraints-
- Version 0StatusunaffectedConstraints<5.19
- Version 6.0.19StatusunaffectedConstraints<=6.0.*
- Version 6.1.5StatusunaffectedConstraints<=6.1.*
- Version 6.2StatusunaffectedConstraints<=*
- Version
Default status is the baseline for the product, each version can override it (e.g. patched versions marked unaffected).
No data.
No data.
Red Hat Enterprise Linux 10
kernel
Not affected
Red Hat Enterprise Linux 6
kernel
Not affected
Red Hat Enterprise Linux 7
kernel
Not affected
Red Hat Enterprise Linux 7
kernel-rt
Not affected
Red Hat Enterprise Linux 8
kernel
Not affected
Red Hat Enterprise Linux 8
kernel-rt
Not affected
Red Hat Enterprise Linux 9
kernel
Fix deferred
Red Hat Enterprise Linux 9
kernel-rt
Fix deferred
| Product | Package | State | Advisory |
|---|---|---|---|
| Red Hat Enterprise Linux 10 | kernel | Not affected | n/a |
| Red Hat Enterprise Linux 6 | kernel | Not affected | n/a |
| Red Hat Enterprise Linux 7 | kernel | Not affected | n/a |
| Red Hat Enterprise Linux 7 | kernel-rt | Not affected | n/a |
| Red Hat Enterprise Linux 8 | kernel | Not affected | n/a |
| Red Hat Enterprise Linux 8 | kernel-rt | Not affected | n/a |
| Red Hat Enterprise Linux 9 | kernel | Fix deferred | n/a |
| Red Hat Enterprise Linux 9 | kernel-rt | Fix deferred | n/a |
No package ranges for this CVE.
Remediation
Red Hat statement
An invalid free occurs in vp_vdpa_remove because the driver calls kfree on the address of the id_table pointer field instead of the pointer value. This effectively passes a non heap address to kfree. The result is memory corruption or an immediate kernel crash during device removal. The crash can be triggered when unloading the vp_vdpa module or removing the associated PCI vDPA device. For the CVSS the PR is L in the paranoid scenario because removal actions typically require elevated capabilities such as device management permissions.
References (9)
- https://access.redhat.com/security/cve/CVE-2022-50873 Vendor Advisory
- https://bugzilla.redhat.com/show_bug.cgi?id=2426103 Issue Tracking
- https://euvd.enisa.europa.eu/vulnerability/EUVD-2022-55825 Advisory
- https://git.kernel.org/stable/c/6ccc891f36d0c20ee220551caabdcd3886ec584b
- https://git.kernel.org/stable/c/8fe12680b2c731201519935013ec9219c93ec540
- https://git.kernel.org/stable/c/ed843d6ed7310a27cf7c8ee0a82a482eed0cb4a6
- https://lore.kernel.org/linux-cve-announce/2025123051-CVE-2022-50873-367d@gregkh/T
- https://nvd.nist.gov/vuln/detail/CVE-2022-50873
- https://www.cve.org/CVERecord?id=CVE-2022-50873
Change history (0)
No recorded changes yet.