CVE-2022-50659

Summary

In the Linux kernel, the following vulnerability has been resolved:

hwrng: geode - Fix PCI device refcount leak

for_each_pci_dev() is implemented by pci_get_device(). The comment of pci_get_device() says that it will increase the reference count for the returned pci_dev and also decrease the reference count for the input pci_dev @from if it is not NULL.

If we break for_each_pci_dev() loop with pdev not NULL, we need to call pci_dev_put() to decrease the reference count. We add a new struct 'amd_geode_priv' to record pointer of the pci_dev and membase, and then add missing pci_dev_put() for the normal and error path.

Affected Software

VendorProductVersion RangeStatus
LinuxLinuxef5d862734b84239e0140319a95fb0bbff5ef394 < 88f4ea623f59155280d99d1a59a968f838472c4aaffected
LinuxLinuxef5d862734b84239e0140319a95fb0bbff5ef394 < e2f44baf62567c5cfbc274974c7d96dddad53cccaffected
LinuxLinuxef5d862734b84239e0140319a95fb0bbff5ef394 < 6b9e43c4098f1310f5b4d52121d007a219fa5d43affected
LinuxLinuxef5d862734b84239e0140319a95fb0bbff5ef394 < 5cc818ad53df650cac8fb41d9066665366af3f03affected
LinuxLinuxef5d862734b84239e0140319a95fb0bbff5ef394 < aa96aff394a511cc7bb7df08d1b8504d4d97671eaffected
LinuxLinuxef5d862734b84239e0140319a95fb0bbff5ef394 < 82bd423ed977847652b2048b0f8dcf049b1847a9affected
LinuxLinuxef5d862734b84239e0140319a95fb0bbff5ef394 < 874f798c2db5ad595e46982d7f727a679dacb048affected
LinuxLinuxef5d862734b84239e0140319a95fb0bbff5ef394 < 19b7b85773b18457ff85a9ff4f5e2a2d4bf7ed0caffected
LinuxLinuxef5d862734b84239e0140319a95fb0bbff5ef394 < 9f6ec8dc574efb7f4f3d7ee9cd59ae307e78f445affected
LinuxLinux2.6.18affected
LinuxLinux0 < 2.6.18unaffected
LinuxLinux4.9.337 <= 4.9.*unaffected
LinuxLinux4.14.303 <= 4.14.*unaffected
LinuxLinux4.19.270 <= 4.19.*unaffected
LinuxLinux5.4.229 <= 5.4.*unaffected
LinuxLinux5.10.163 <= 5.10.*unaffected
LinuxLinux5.15.86 <= 5.15.*unaffected
LinuxLinux6.0.16 <= 6.0.*unaffected
LinuxLinux6.1.2 <= 6.1.*unaffected
LinuxLinux6.2 <= *unaffected

Weaknesses

References