In the Linux kernel, the following vulnerability has been resolved:
net: ethernet: fix potential use-after-free in ec_bhf_remove
static void ec_bhf_remove(struct pci_dev *dev)
{
…
struct ec_bhf_priv *priv = netdev_priv(net_dev);
unregister_netdev(net_dev);
free_netdev(net_dev);
pci_iounmap(dev, priv->dma_io);
pci_iounmap(dev, priv->io);
…
}
priv is netdev private data, but it is used
after free_netdev(). It can cause use-after-free when accessing priv
pointer. So, fix it by moving free_netdev() after pci_iounmap()
calls.
[
{
"product": "Linux",
"vendor": "Linux",
"defaultStatus": "unaffected",
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"programFiles": [
"drivers/net/ethernet/ec_bhf.c"
],
"versions": [
{
"version": "6af55ff52b02",
"lessThan": "db2bc3cfd2bc",
"status": "affected",
"versionType": "git"
},
{
"version": "6af55ff52b02",
"lessThan": "1cafc540b7bf",
"status": "affected",
"versionType": "git"
},
{
"version": "6af55ff52b02",
"lessThan": "b1ad28375509",
"status": "affected",
"versionType": "git"
},
{
"version": "6af55ff52b02",
"lessThan": "0260916843cc",
"status": "affected",
"versionType": "git"
},
{
"version": "6af55ff52b02",
"lessThan": "19f88ca68ccf",
"status": "affected",
"versionType": "git"
},
{
"version": "6af55ff52b02",
"lessThan": "95deeb29d831",
"status": "affected",
"versionType": "git"
},
{
"version": "6af55ff52b02",
"lessThan": "d11d79e52ba0",
"status": "affected",
"versionType": "git"
},
{
"version": "6af55ff52b02",
"lessThan": "9cca0c2d7014",
"status": "affected",
"versionType": "git"
}
]
},
{
"product": "Linux",
"vendor": "Linux",
"defaultStatus": "affected",
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"programFiles": [
"drivers/net/ethernet/ec_bhf.c"
],
"versions": [
{
"version": "3.15",
"status": "affected"
},
{
"version": "0",
"lessThan": "3.15",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "4.4.274",
"lessThanOrEqual": "4.4.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "4.9.274",
"lessThanOrEqual": "4.9.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "4.14.238",
"lessThanOrEqual": "4.14.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "4.19.196",
"lessThanOrEqual": "4.19.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "5.4.128",
"lessThanOrEqual": "5.4.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "5.10.46",
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "5.12.13",
"lessThanOrEqual": "5.12.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "5.13",
"lessThanOrEqual": "*",
"status": "unaffected",
"versionType": "original_commit_for_fix"
}
]
}
]
git.kernel.org/stable/c/0260916843cc74f3906acf8b6f256693e01530a2
git.kernel.org/stable/c/19f88ca68ccf8771276a606765239b167654f84a
git.kernel.org/stable/c/1cafc540b7bf1b6a5a77dc000205fe337ef6eba6
git.kernel.org/stable/c/95deeb29d831e2fae608439e243e7a520611e7ea
git.kernel.org/stable/c/9cca0c2d70149160407bda9a9446ce0c29b6e6c6
git.kernel.org/stable/c/b1ad283755095a4b9d1431aeb357d7df1a33d3bb
git.kernel.org/stable/c/d11d79e52ba080ee567cb7d7eb42a5ade60a8130
git.kernel.org/stable/c/db2bc3cfd2bc01621014d4f17cdfc74611f339c8