In the Linux kernel, the following vulnerability has been resolved:
iommu/vt-d: Fix PCI device refcount leak in dmardevscope_init()
foreachpcidev() is implemented by pcigetdevice(). The comment of pcigetdevice() says that it will increase the reference count for the returned pcidev and also decrease the reference count for the input pci_dev @from if it is not NULL.
If we break foreachpcidev() loop with pdev not NULL, we need to call pcidevput() to decrease the reference count. Add the missing pcidev_put() for the error path to avoid reference count leak.
{ "vanir_signatures": [ { "deprecated": false, "signature_type": "Line", "target": { "file": "drivers/iommu/dmar.c" }, "id": "CVE-2022-49002-16430662", "digest": { "line_hashes": [ "55459830961452065510814923741790686482", "201026777925361995158069550733202595655", "198572286615100183806648404170537840623", "175777030599097206191557069035042761664" ], "threshold": 0.9 }, "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@71c4a621985fc051ab86d3a86c749069a993fcb2" }, { "deprecated": false, "signature_type": "Function", "target": { "file": "drivers/iommu/dmar.c", "function": "dmar_dev_scope_init" }, "id": "CVE-2022-49002-237f282d", "digest": { "length": 546.0, "function_hash": "121692972374701905696313835245996574942" }, "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@71c4a621985fc051ab86d3a86c749069a993fcb2" }, { "deprecated": false, "signature_type": "Line", "target": { "file": "drivers/iommu/dmar.c" }, "id": "CVE-2022-49002-26eb2b5e", "digest": { "line_hashes": [ "55459830961452065510814923741790686482", "201026777925361995158069550733202595655", "198572286615100183806648404170537840623", "175777030599097206191557069035042761664" ], "threshold": 0.9 }, "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d47bc9d7bcdbb9adc9703513d964b514fee5b0bf" }, { "deprecated": false, "signature_type": "Function", "target": { "file": "drivers/iommu/intel/dmar.c", "function": "dmar_dev_scope_init" }, "id": "CVE-2022-49002-45123970", "digest": { "length": 496.0, "function_hash": "27928295777397717071011646902360598685" }, "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a5c65cd56aed027f8a97fda8b691caaeb66d115e" }, { "deprecated": false, "signature_type": "Function", "target": { "file": "drivers/iommu/dmar.c", "function": "dmar_dev_scope_init" }, "id": "CVE-2022-49002-5600e60a", "digest": { "length": 496.0, "function_hash": "27928295777397717071011646902360598685" }, "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@cbdd83bd2fd67142b03ce9dbdd1eab322ff7321f" }, { "deprecated": false, "signature_type": "Line", "target": { "file": "drivers/iommu/intel/dmar.c" }, "id": "CVE-2022-49002-66bdf3e5", "digest": { "line_hashes": [ "55459830961452065510814923741790686482", "201026777925361995158069550733202595655", "198572286615100183806648404170537840623", "175777030599097206191557069035042761664" ], "threshold": 0.9 }, "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a5c65cd56aed027f8a97fda8b691caaeb66d115e" }, { "deprecated": false, "signature_type": "Line", "target": { "file": "drivers/iommu/intel/dmar.c" }, "id": "CVE-2022-49002-796a54b8", "digest": { "line_hashes": [ "55459830961452065510814923741790686482", "201026777925361995158069550733202595655", "198572286615100183806648404170537840623", "175777030599097206191557069035042761664" ], "threshold": 0.9 }, "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2a8f7b90681472948de172dbbf5a54cd342870aa" }, { "deprecated": false, "signature_type": "Function", "target": { "file": "drivers/iommu/intel/dmar.c", "function": "dmar_dev_scope_init" }, "id": "CVE-2022-49002-7e20cbdf", "digest": { "length": 496.0, "function_hash": "27928295777397717071011646902360598685" }, "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2a8f7b90681472948de172dbbf5a54cd342870aa" }, { "deprecated": false, "signature_type": "Line", "target": { "file": "drivers/iommu/intel/dmar.c" }, "id": "CVE-2022-49002-a3c9e27e", "digest": { "line_hashes": [ "55459830961452065510814923741790686482", "201026777925361995158069550733202595655", "198572286615100183806648404170537840623", "175777030599097206191557069035042761664" ], "threshold": 0.9 }, "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4bedbbd782ebbe7287231fea862c158d4f08a9e3" }, { "deprecated": false, "signature_type": "Function", "target": { "file": "drivers/iommu/intel/dmar.c", "function": "dmar_dev_scope_init" }, "id": "CVE-2022-49002-dfa9a896", "digest": { "length": 496.0, "function_hash": "27928295777397717071011646902360598685" }, "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4bedbbd782ebbe7287231fea862c158d4f08a9e3" }, { "deprecated": false, "signature_type": "Function", "target": { "file": "drivers/iommu/dmar.c", "function": "dmar_dev_scope_init" }, "id": "CVE-2022-49002-f1bfa233", "digest": { "length": 546.0, "function_hash": "121692972374701905696313835245996574942" }, "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d47bc9d7bcdbb9adc9703513d964b514fee5b0bf" }, { "deprecated": false, "signature_type": "Line", "target": { "file": "drivers/iommu/dmar.c" }, "id": "CVE-2022-49002-fb421eb1", "digest": { "line_hashes": [ "55459830961452065510814923741790686482", "201026777925361995158069550733202595655", "198572286615100183806648404170537840623", "175777030599097206191557069035042761664" ], "threshold": 0.9 }, "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@cbdd83bd2fd67142b03ce9dbdd1eab322ff7321f" } ] }