In the Linux kernel, the following vulnerability has been resolved:
iommu/vt-d: Fix potential memory leak in intelsetupirq_remapping()
After commit e3beca48a45b ("irqdomain/treewide: Keep firmware node unconditionally allocated"). For tear down scenario, fn is only freed after fail to allocate irdomain, though it also should be freed in case dmarenable_qi returns error.
Besides free fn, irqdomain and irmsidomain need to be removed as well if intelsetupirqremapping fails to enable queued invalidation.
Improve the rewinding path by add outfreeirdomain and outfree_fwnode lables per Baolu's suggestion.
[
{
"digest": {
"function_hash": "87280981934507207410567460689888169874",
"length": 1954.0
},
"signature_type": "Function",
"target": {
"function": "intel_setup_irq_remapping",
"file": "drivers/iommu/intel/irq_remapping.c"
},
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@336d096b62bdc673e852b6b80d5072d7888ce85d",
"signature_version": "v1",
"id": "CVE-2022-48724-0b865b16"
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"203601887613914343114986240040282472736",
"114359749762917046885601377301688947180",
"187359762816398441408171609615426442102",
"196283805321213039677096870857480479812",
"97149765836012577360867471834726715490",
"189550228823153660130317900396256760581",
"190208959824766723464588799801445966131",
"3279506488248358557215101446015944956",
"74734760799866628809974153906137947317",
"27885112197054108728792786623364251285",
"141895937988621807071534242381091393997",
"120768965172642427514613029229748837698",
"47745067061365647129314013419977443643"
]
},
"signature_type": "Line",
"target": {
"file": "drivers/iommu/intel/irq_remapping.c"
},
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@336d096b62bdc673e852b6b80d5072d7888ce85d",
"signature_version": "v1",
"id": "CVE-2022-48724-0ec56caf"
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"203601887613914343114986240040282472736",
"114359749762917046885601377301688947180",
"187359762816398441408171609615426442102",
"196283805321213039677096870857480479812",
"97149765836012577360867471834726715490",
"189550228823153660130317900396256760581",
"190208959824766723464588799801445966131",
"3279506488248358557215101446015944956",
"74734760799866628809974153906137947317",
"27885112197054108728792786623364251285",
"141895937988621807071534242381091393997",
"120768965172642427514613029229748837698",
"47745067061365647129314013419977443643"
]
},
"signature_type": "Line",
"target": {
"file": "drivers/iommu/intel/irq_remapping.c"
},
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@9d9995b0371e4e8c18d4f955479e5d47efe7b2d4",
"signature_version": "v1",
"id": "CVE-2022-48724-1f5020f1"
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"203601887613914343114986240040282472736",
"114359749762917046885601377301688947180",
"187359762816398441408171609615426442102",
"196283805321213039677096870857480479812",
"97149765836012577360867471834726715490",
"189550228823153660130317900396256760581",
"190208959824766723464588799801445966131",
"3279506488248358557215101446015944956",
"74734760799866628809974153906137947317",
"27885112197054108728792786623364251285",
"141895937988621807071534242381091393997",
"120768965172642427514613029229748837698",
"47745067061365647129314013419977443643"
]
},
"signature_type": "Line",
"target": {
"file": "drivers/iommu/intel/irq_remapping.c"
},
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b62eceb5f8f08815fe3f945fc55bbf997c344ecd",
"signature_version": "v1",
"id": "CVE-2022-48724-8defec9a"
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"203601887613914343114986240040282472736",
"114359749762917046885601377301688947180",
"187359762816398441408171609615426442102",
"196283805321213039677096870857480479812",
"97149765836012577360867471834726715490",
"189550228823153660130317900396256760581",
"190208959824766723464588799801445966131",
"3279506488248358557215101446015944956",
"74734760799866628809974153906137947317",
"27885112197054108728792786623364251285",
"141895937988621807071534242381091393997",
"120768965172642427514613029229748837698",
"47745067061365647129314013419977443643"
]
},
"signature_type": "Line",
"target": {
"file": "drivers/iommu/intel/irq_remapping.c"
},
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@99e675d473eb8cf2deac1376a0f840222fc1adcf",
"signature_version": "v1",
"id": "CVE-2022-48724-92de051d"
},
{
"digest": {
"function_hash": "87280981934507207410567460689888169874",
"length": 1954.0
},
"signature_type": "Function",
"target": {
"function": "intel_setup_irq_remapping",
"file": "drivers/iommu/intel/irq_remapping.c"
},
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@9d9995b0371e4e8c18d4f955479e5d47efe7b2d4",
"signature_version": "v1",
"id": "CVE-2022-48724-a7d94e1c"
},
{
"digest": {
"function_hash": "87280981934507207410567460689888169874",
"length": 1954.0
},
"signature_type": "Function",
"target": {
"function": "intel_setup_irq_remapping",
"file": "drivers/iommu/intel/irq_remapping.c"
},
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@99e675d473eb8cf2deac1376a0f840222fc1adcf",
"signature_version": "v1",
"id": "CVE-2022-48724-d3443ea8"
},
{
"digest": {
"function_hash": "87280981934507207410567460689888169874",
"length": 1954.0
},
"signature_type": "Function",
"target": {
"function": "intel_setup_irq_remapping",
"file": "drivers/iommu/intel/irq_remapping.c"
},
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b62eceb5f8f08815fe3f945fc55bbf997c344ecd",
"signature_version": "v1",
"id": "CVE-2022-48724-f5cd6ab8"
}
]