In the Linux kernel, the following vulnerability has been resolved:
net: mdio: unexport _init-annotated mdiobus_init()
EXPORTSYMBOL and _init is a bad combination because the .init.text section is freed up after the initialization. Hence, modules cannot use symbols annotated __init. The access to a freed symbol may end up with kernel panic.
modpost used to detect it, but it has been broken for a decade.
Recently, I fixed modpost so it started to warn it again, then this showed up in linux-next builds.
There are two ways to fix it:
I chose the latter for this case because the only in-tree call-site, drivers/net/phy/phydevice.c is never compiled as modular. (CONFIGPHYLIB is boolean)
[
{
"signature_type": "Line",
"deprecated": false,
"digest": {
"line_hashes": [
"182179663386392309972916229327215060274",
"185031626679879823560420409733667666797",
"230554753918417459845946910446726288211",
"116854496581754006848110278173734485572"
],
"threshold": 0.9
},
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5534bcd7c40299862237c4a8fd9c5031b3db1538",
"target": {
"file": "drivers/net/phy/mdio_bus.c"
},
"id": "CVE-2022-49350-1bdda8a6"
},
{
"signature_type": "Line",
"deprecated": false,
"digest": {
"line_hashes": [
"182179663386392309972916229327215060274",
"185031626679879823560420409733667666797",
"230554753918417459845946910446726288211",
"116854496581754006848110278173734485572"
],
"threshold": 0.9
},
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@f5c68137f1191ba3fcf6260ec71b30be2e2bf4c3",
"target": {
"file": "drivers/net/phy/mdio_bus.c"
},
"id": "CVE-2022-49350-d0fdf7cc"
}
]