In the Linux kernel, the following vulnerability has been resolved:
net: mdio: unexport __init-annotated mdiobusinit()
EXPORT_SYMBOL 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)
{
"cna_assigner": "Linux",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2022/49xxx/CVE-2022-49350.json"
}[
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"182179663386392309972916229327215060274",
"185031626679879823560420409733667666797",
"230554753918417459845946910446726288211",
"116854496581754006848110278173734485572"
]
},
"signature_version": "v1",
"deprecated": false,
"signature_type": "Line",
"id": "CVE-2022-49350-005e1fa1",
"target": {
"file": "drivers/net/phy/mdio_bus.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@ab64ec2c75683f30ccde9eaaf0761002f901aa12"
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"182179663386392309972916229327215060274",
"185031626679879823560420409733667666797",
"230554753918417459845946910446726288211",
"116854496581754006848110278173734485572"
]
},
"signature_version": "v1",
"deprecated": false,
"signature_type": "Line",
"id": "CVE-2022-49350-27b9faea",
"target": {
"file": "drivers/net/phy/mdio_bus.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@59fa94cddf9eef8d8dae587373eed8b8f4eb11d7"
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"182179663386392309972916229327215060274",
"185031626679879823560420409733667666797",
"230554753918417459845946910446726288211",
"116854496581754006848110278173734485572"
]
},
"signature_version": "v1",
"deprecated": false,
"signature_type": "Line",
"id": "CVE-2022-49350-2b8b2e03",
"target": {
"file": "drivers/net/phy/mdio_bus.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@35b42dce619701f1300fb8498dae82c9bb1f0263"
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"182179663386392309972916229327215060274",
"185031626679879823560420409733667666797",
"230554753918417459845946910446726288211",
"116854496581754006848110278173734485572"
]
},
"signature_version": "v1",
"deprecated": false,
"signature_type": "Line",
"id": "CVE-2022-49350-acf30f44",
"target": {
"file": "drivers/net/phy/mdio_bus.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7759c3222815b945a94b212bc0c6cdec475cfec2"
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"182179663386392309972916229327215060274",
"185031626679879823560420409733667666797",
"230554753918417459845946910446726288211",
"116854496581754006848110278173734485572"
]
},
"signature_version": "v1",
"deprecated": false,
"signature_type": "Line",
"id": "CVE-2022-49350-d0fdf7cc",
"target": {
"file": "drivers/net/phy/mdio_bus.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@f5c68137f1191ba3fcf6260ec71b30be2e2bf4c3"
}
]
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2022-49350.json"