In the Linux kernel, the following vulnerability has been resolved:
phy: mdio: fix memory leak
Syzbot reported memory leak in MDIO bus interface, the problem was in wrong state logic.
MDIOBUS_ALLOCATED indicates 2 states: 1. Bus is only allocated 2. Bus allocated and __mdiobus_register() fails, but device_register() was called
In case of device_register() has been called we should call put_device() to correctly free the memory allocated for this device, but mdiobus_free() calls just kfree(dev) in case of MDIOBUS_ALLOCATED state
To avoid this behaviour we need to set bus->state to MDIOBUS_UNREGISTERED before calling device_register(), because put_device() should be called even in case of device_register() failure.
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2021-47416.json"
[
{
"events": [
{
"introduced": "2.6.28"
},
{
"fixed": "4.4.289"
}
]
},
{
"events": [
{
"introduced": "4.5"
},
{
"fixed": "4.9.287"
}
]
},
{
"events": [
{
"introduced": "4.10"
},
{
"fixed": "4.14.251"
}
]
},
{
"events": [
{
"introduced": "4.15"
},
{
"fixed": "4.19.211"
}
]
},
{
"events": [
{
"introduced": "4.20"
},
{
"fixed": "5.4.153"
}
]
},
{
"events": [
{
"introduced": "5.5"
},
{
"fixed": "5.10.73"
}
]
},
{
"events": [
{
"introduced": "5.11"
},
{
"fixed": "5.14.12"
}
]
},
{
"events": [
{
"introduced": "0"
},
{
"last_affected": "5.15-rc1"
}
]
},
{
"events": [
{
"introduced": "0"
},
{
"last_affected": "5.15-rc2"
}
]
},
{
"events": [
{
"introduced": "0"
},
{
"last_affected": "5.15-rc3"
}
]
},
{
"events": [
{
"introduced": "0"
},
{
"last_affected": "5.15-rc4"
}
]
}
]