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 __mdiobusregister() fails, but deviceregister() was called
In case of deviceregister() has been called we should call putdevice() to correctly free the memory allocated for this device, but mdiobusfree() calls just kfree(dev) in case of MDIOBUSALLOCATED state
To avoid this behaviour we need to set bus->state to MDIOBUSUNREGISTERED before calling deviceregister(), because putdevice() should be called even in case of deviceregister() failure.
[
{
"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"
}
]
}
]
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2021-47416.json"