In the Linux kernel, the following vulnerability has been resolved:
iommufd: Fix outfput in iommufdfault_alloc()
As fput() calls the file->fop->release op, where fault obj and ictx are getting released, there is no need to release these two after fput() one more time, which would result in imbalanced refcounts: refcountt: decrement hit 0; leaking memory. WARNING: CPU: 48 PID: 2369 at lib/refcount.c:31 refcountwarnsaturate+0x60/0x230 Call trace: refcountwarnsaturate+0x60/0x230 (P) refcountwarnsaturate+0x60/0x230 (L) iommufdfaultfopsrelease+0x9c/0xe0 [iommufd] ... VFS: Close: file count is 0 (fop=iommufdfops [iommufd]) WARNING: CPU: 48 PID: 2369 at fs/open.c:1507 filpflush+0x3c/0xf0 Call trace: filpflush+0x3c/0xf0 (P) filpflush+0x3c/0xf0 (L) _arm64sysclose+0x34/0x98 ... imbalanced put on file reference count WARNING: CPU: 48 PID: 2369 at fs/file.c:74 _filerefput+0x100/0x138 Call trace: _filerefput+0x100/0x138 (P) _filerefput+0x100/0x138 (L) _fputsync+0x4c/0xd0
Drop those two lines to fix the warnings above.
[
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"201133933214389869207365209265155828509",
"48546815371032801088879330528293635801",
"17154678314192657719611386338519288840",
"46054519517103031150789658257126256838",
"259120365720777910266281913372512607068"
]
},
"target": {
"file": "drivers/iommu/iommufd/fault.c"
},
"signature_type": "Line",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@af7f4780514f850322b2959032ecaa96e4b26472",
"signature_version": "v1",
"id": "CVE-2024-56624-14b49f32"
},
{
"digest": {
"length": 1185.0,
"function_hash": "9162579243831811206054069076341886525"
},
"target": {
"function": "iommufd_fault_alloc",
"file": "drivers/iommu/iommufd/fault.c"
},
"signature_type": "Function",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@af7f4780514f850322b2959032ecaa96e4b26472",
"signature_version": "v1",
"id": "CVE-2024-56624-18066b48"
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"201133933214389869207365209265155828509",
"48546815371032801088879330528293635801",
"17154678314192657719611386338519288840",
"46054519517103031150789658257126256838",
"259120365720777910266281913372512607068"
]
},
"target": {
"file": "drivers/iommu/iommufd/fault.c"
},
"signature_type": "Line",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2b3f30c8edbf9a122ce01f13f0f41fbca5f1d41d",
"signature_version": "v1",
"id": "CVE-2024-56624-64cc233b"
},
{
"digest": {
"length": 1185.0,
"function_hash": "9162579243831811206054069076341886525"
},
"target": {
"function": "iommufd_fault_alloc",
"file": "drivers/iommu/iommufd/fault.c"
},
"signature_type": "Function",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2b3f30c8edbf9a122ce01f13f0f41fbca5f1d41d",
"signature_version": "v1",
"id": "CVE-2024-56624-b52d14a1"
}
]