In the Linux kernel, the following vulnerability has been resolved:
net: mdio: fix unbalanced fwnode reference count in mdiodevicerelease()
There is warning report about of_node refcount leak while probing mdio device:
OF: ERROR: memory leak, expected refcount 1 instead of 2, ofnodeget()/ofnodeput() unbalanced - destroy cset entry: attach overlay node /spi/soc@0/mdio@710700c0/ethernet@4
In ofmdiobusregisterdevice(), we increase fwnode refcount by fwnodehandleget() before associating the ofnode with mdio device, but it has never been decreased in normal path. Since that, in mdiodevicerelease(), it needs to call fwnodehandleput() in addition instead of calling kfree() directly.
After above, just calling mdiodevicefree() in the error handle path of ofmdiobusregister_device() is enough to keep the refcount balanced.
[
{
"signature_type": "Line",
"deprecated": false,
"digest": {
"line_hashes": [
"79803554072067050261978704316218722985",
"263672713135844119202718158619783944422",
"190748423782254758780254842637745296559",
"103976477918898039453742936050612404427",
"60770399167418712124147761470850243003",
"140622110970184497557783595480837642369",
"195312479997047694892933836242759105551",
"36778706934292894166727817212559409398"
],
"threshold": 0.9
},
"target": {
"file": "drivers/net/phy/mdio_device.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@16854177745a5648f8ec322353b432e18460f43a",
"signature_version": "v1",
"id": "CVE-2022-48961-2f72e8d3"
},
{
"signature_type": "Function",
"deprecated": false,
"digest": {
"length": 77.0,
"function_hash": "198116239689472689870110612360515563622"
},
"target": {
"file": "drivers/net/phy/mdio_device.c",
"function": "mdio_device_release"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@16854177745a5648f8ec322353b432e18460f43a",
"signature_version": "v1",
"id": "CVE-2022-48961-4a5e2abd"
},
{
"signature_type": "Line",
"deprecated": false,
"digest": {
"line_hashes": [
"79803554072067050261978704316218722985",
"263672713135844119202718158619783944422",
"190748423782254758780254842637745296559",
"103976477918898039453742936050612404427",
"60770399167418712124147761470850243003",
"140622110970184497557783595480837642369",
"195312479997047694892933836242759105551",
"36778706934292894166727817212559409398"
],
"threshold": 0.9
},
"target": {
"file": "drivers/net/phy/mdio_device.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@cb37617687f2bfa5b675df7779f869147c9002bd",
"signature_version": "v1",
"id": "CVE-2022-48961-867d75ad"
},
{
"signature_type": "Function",
"deprecated": false,
"digest": {
"length": 77.0,
"function_hash": "198116239689472689870110612360515563622"
},
"target": {
"file": "drivers/net/phy/mdio_device.c",
"function": "mdio_device_release"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@cb37617687f2bfa5b675df7779f869147c9002bd",
"signature_version": "v1",
"id": "CVE-2022-48961-896f2d6c"
},
{
"signature_type": "Function",
"deprecated": false,
"digest": {
"length": 471.0,
"function_hash": "152179970289484281233758044049042709646"
},
"target": {
"file": "drivers/net/mdio/of_mdio.c",
"function": "of_mdiobus_register_device"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@16854177745a5648f8ec322353b432e18460f43a",
"signature_version": "v1",
"id": "CVE-2022-48961-8fb38548"
},
{
"signature_type": "Function",
"deprecated": false,
"digest": {
"length": 77.0,
"function_hash": "198116239689472689870110612360515563622"
},
"target": {
"file": "drivers/net/phy/mdio_device.c",
"function": "mdio_device_release"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a5c6de1a6656b8cc6bce7cb3d9874dd7df4968c3",
"signature_version": "v1",
"id": "CVE-2022-48961-b485c123"
},
{
"signature_type": "Function",
"deprecated": false,
"digest": {
"length": 471.0,
"function_hash": "152179970289484281233758044049042709646"
},
"target": {
"file": "drivers/net/mdio/of_mdio.c",
"function": "of_mdiobus_register_device"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a5c6de1a6656b8cc6bce7cb3d9874dd7df4968c3",
"signature_version": "v1",
"id": "CVE-2022-48961-b7e06725"
},
{
"signature_type": "Function",
"deprecated": false,
"digest": {
"length": 471.0,
"function_hash": "152179970289484281233758044049042709646"
},
"target": {
"file": "drivers/net/mdio/of_mdio.c",
"function": "of_mdiobus_register_device"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@cb37617687f2bfa5b675df7779f869147c9002bd",
"signature_version": "v1",
"id": "CVE-2022-48961-bf14fd99"
},
{
"signature_type": "Line",
"deprecated": false,
"digest": {
"line_hashes": [
"79803554072067050261978704316218722985",
"263672713135844119202718158619783944422",
"190748423782254758780254842637745296559",
"103976477918898039453742936050612404427",
"60770399167418712124147761470850243003",
"140622110970184497557783595480837642369",
"195312479997047694892933836242759105551",
"36778706934292894166727817212559409398"
],
"threshold": 0.9
},
"target": {
"file": "drivers/net/phy/mdio_device.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a5c6de1a6656b8cc6bce7cb3d9874dd7df4968c3",
"signature_version": "v1",
"id": "CVE-2022-48961-cc990746"
},
{
"signature_type": "Line",
"deprecated": false,
"digest": {
"line_hashes": [
"183959479914848395244976837646337993872",
"145906396387146867431077780739085651842",
"75414110529583709436261032096751159008",
"247710529595401216793830371981915417324",
"20293266953380039270660121761273594666",
"85048578019323964572474597467304818840"
],
"threshold": 0.9
},
"target": {
"file": "drivers/net/mdio/of_mdio.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@16854177745a5648f8ec322353b432e18460f43a",
"signature_version": "v1",
"id": "CVE-2022-48961-cd4cfb72"
},
{
"signature_type": "Line",
"deprecated": false,
"digest": {
"line_hashes": [
"183959479914848395244976837646337993872",
"145906396387146867431077780739085651842",
"75414110529583709436261032096751159008",
"247710529595401216793830371981915417324",
"20293266953380039270660121761273594666",
"85048578019323964572474597467304818840"
],
"threshold": 0.9
},
"target": {
"file": "drivers/net/mdio/of_mdio.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a5c6de1a6656b8cc6bce7cb3d9874dd7df4968c3",
"signature_version": "v1",
"id": "CVE-2022-48961-dd10c6a5"
},
{
"signature_type": "Line",
"deprecated": false,
"digest": {
"line_hashes": [
"183959479914848395244976837646337993872",
"145906396387146867431077780739085651842",
"75414110529583709436261032096751159008",
"247710529595401216793830371981915417324",
"20293266953380039270660121761273594666",
"85048578019323964572474597467304818840"
],
"threshold": 0.9
},
"target": {
"file": "drivers/net/mdio/of_mdio.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@cb37617687f2bfa5b675df7779f869147c9002bd",
"signature_version": "v1",
"id": "CVE-2022-48961-e348992d"
}
]