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.
[
{
"id": "CVE-2022-49002-16430662",
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@71c4a621985fc051ab86d3a86c749069a993fcb2",
"target": {
"file": "drivers/iommu/dmar.c"
},
"digest": {
"line_hashes": [
"55459830961452065510814923741790686482",
"201026777925361995158069550733202595655",
"198572286615100183806648404170537840623",
"175777030599097206191557069035042761664"
],
"threshold": 0.9
},
"signature_type": "Line"
},
{
"id": "CVE-2022-49002-19c3772a",
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@876d7bfb89273997056220029ff12b1c2cc4691d",
"target": {
"function": "dmar_dev_scope_init",
"file": "drivers/iommu/dmar.c"
},
"digest": {
"length": 496.0,
"function_hash": "27928295777397717071011646902360598685"
},
"signature_type": "Function"
},
{
"id": "CVE-2022-49002-237f282d",
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@71c4a621985fc051ab86d3a86c749069a993fcb2",
"target": {
"function": "dmar_dev_scope_init",
"file": "drivers/iommu/dmar.c"
},
"digest": {
"length": 546.0,
"function_hash": "121692972374701905696313835245996574942"
},
"signature_type": "Function"
},
{
"id": "CVE-2022-49002-26eb2b5e",
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d47bc9d7bcdbb9adc9703513d964b514fee5b0bf",
"target": {
"file": "drivers/iommu/dmar.c"
},
"digest": {
"line_hashes": [
"55459830961452065510814923741790686482",
"201026777925361995158069550733202595655",
"198572286615100183806648404170537840623",
"175777030599097206191557069035042761664"
],
"threshold": 0.9
},
"signature_type": "Line"
},
{
"id": "CVE-2022-49002-2942f979",
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@bdb613ef179ad4bb9d56a2533e9b30e434f1dfb7",
"target": {
"file": "drivers/iommu/intel/dmar.c"
},
"digest": {
"line_hashes": [
"55459830961452065510814923741790686482",
"201026777925361995158069550733202595655",
"198572286615100183806648404170537840623",
"175777030599097206191557069035042761664"
],
"threshold": 0.9
},
"signature_type": "Line"
},
{
"id": "CVE-2022-49002-3125d734",
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@876d7bfb89273997056220029ff12b1c2cc4691d",
"target": {
"file": "drivers/iommu/dmar.c"
},
"digest": {
"line_hashes": [
"55459830961452065510814923741790686482",
"201026777925361995158069550733202595655",
"198572286615100183806648404170537840623",
"175777030599097206191557069035042761664"
],
"threshold": 0.9
},
"signature_type": "Line"
},
{
"id": "CVE-2022-49002-45123970",
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a5c65cd56aed027f8a97fda8b691caaeb66d115e",
"target": {
"function": "dmar_dev_scope_init",
"file": "drivers/iommu/intel/dmar.c"
},
"digest": {
"length": 496.0,
"function_hash": "27928295777397717071011646902360598685"
},
"signature_type": "Function"
},
{
"id": "CVE-2022-49002-5600e60a",
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@cbdd83bd2fd67142b03ce9dbdd1eab322ff7321f",
"target": {
"function": "dmar_dev_scope_init",
"file": "drivers/iommu/dmar.c"
},
"digest": {
"length": 496.0,
"function_hash": "27928295777397717071011646902360598685"
},
"signature_type": "Function"
},
{
"id": "CVE-2022-49002-66bdf3e5",
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a5c65cd56aed027f8a97fda8b691caaeb66d115e",
"target": {
"file": "drivers/iommu/intel/dmar.c"
},
"digest": {
"line_hashes": [
"55459830961452065510814923741790686482",
"201026777925361995158069550733202595655",
"198572286615100183806648404170537840623",
"175777030599097206191557069035042761664"
],
"threshold": 0.9
},
"signature_type": "Line"
},
{
"id": "CVE-2022-49002-77e2364a",
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@bdb613ef179ad4bb9d56a2533e9b30e434f1dfb7",
"target": {
"function": "dmar_dev_scope_init",
"file": "drivers/iommu/intel/dmar.c"
},
"digest": {
"length": 496.0,
"function_hash": "27928295777397717071011646902360598685"
},
"signature_type": "Function"
},
{
"id": "CVE-2022-49002-796a54b8",
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2a8f7b90681472948de172dbbf5a54cd342870aa",
"target": {
"file": "drivers/iommu/intel/dmar.c"
},
"digest": {
"line_hashes": [
"55459830961452065510814923741790686482",
"201026777925361995158069550733202595655",
"198572286615100183806648404170537840623",
"175777030599097206191557069035042761664"
],
"threshold": 0.9
},
"signature_type": "Line"
},
{
"id": "CVE-2022-49002-7e20cbdf",
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2a8f7b90681472948de172dbbf5a54cd342870aa",
"target": {
"function": "dmar_dev_scope_init",
"file": "drivers/iommu/intel/dmar.c"
},
"digest": {
"length": 496.0,
"function_hash": "27928295777397717071011646902360598685"
},
"signature_type": "Function"
},
{
"id": "CVE-2022-49002-a3c9e27e",
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4bedbbd782ebbe7287231fea862c158d4f08a9e3",
"target": {
"file": "drivers/iommu/intel/dmar.c"
},
"digest": {
"line_hashes": [
"55459830961452065510814923741790686482",
"201026777925361995158069550733202595655",
"198572286615100183806648404170537840623",
"175777030599097206191557069035042761664"
],
"threshold": 0.9
},
"signature_type": "Line"
},
{
"id": "CVE-2022-49002-dfa9a896",
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4bedbbd782ebbe7287231fea862c158d4f08a9e3",
"target": {
"function": "dmar_dev_scope_init",
"file": "drivers/iommu/intel/dmar.c"
},
"digest": {
"length": 496.0,
"function_hash": "27928295777397717071011646902360598685"
},
"signature_type": "Function"
},
{
"id": "CVE-2022-49002-f1bfa233",
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d47bc9d7bcdbb9adc9703513d964b514fee5b0bf",
"target": {
"function": "dmar_dev_scope_init",
"file": "drivers/iommu/dmar.c"
},
"digest": {
"length": 546.0,
"function_hash": "121692972374701905696313835245996574942"
},
"signature_type": "Function"
},
{
"id": "CVE-2022-49002-fb421eb1",
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@cbdd83bd2fd67142b03ce9dbdd1eab322ff7321f",
"target": {
"file": "drivers/iommu/dmar.c"
},
"digest": {
"line_hashes": [
"55459830961452065510814923741790686482",
"201026777925361995158069550733202595655",
"198572286615100183806648404170537840623",
"175777030599097206191557069035042761664"
],
"threshold": 0.9
},
"signature_type": "Line"
}
]