In the Linux kernel, the following vulnerability has been resolved:
IB/hfi1: Fix leak of rcvhdrtaildummykvaddr
This buffer is currently allocated in hfi1_init():
if (reinit)
ret = init_after_reset(dd);
else
ret = loadtime_init(dd);
if (ret)
goto done;
/* allocate dummy tail memory for all receive contexts */
dd->rcvhdrtail_dummy_kvaddr = dma_alloc_coherent(&dd->pcidev->dev,
sizeof(u64),
&dd->rcvhdrtail_dummy_dma,
GFP_KERNEL);
if (!dd->rcvhdrtail_dummy_kvaddr) {
dd_dev_err(dd, "cannot allocate dummy tail memory\n");
ret = -ENOMEM;
goto done;
}
The reinit triggered path will overwrite the old allocation and leak it.
Fix by moving the allocation to hfi1allocdevdata() and the deallocation to hfi1freedevdata().
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2021-47523.json"
[
{
"events": [
{
"introduced": "4.5"
},
{
"fixed": "5.10.85"
}
]
},
{
"events": [
{
"introduced": "5.11"
},
{
"fixed": "5.15.8"
}
]
},
{
"events": [
{
"introduced": "0"
},
{
"last_affected": "5.16-rc1"
}
]
},
{
"events": [
{
"introduced": "0"
},
{
"last_affected": "5.16-rc2"
}
]
},
{
"events": [
{
"introduced": "0"
},
{
"last_affected": "5.16-rc3"
}
]
},
{
"events": [
{
"introduced": "0"
},
{
"last_affected": "5.16-rc4"
}
]
}
]