In the Linux kernel, the following vulnerability has been resolved:
net: mdio: unexport __init-annotated mdio_bus_init()
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:
- Remove __init
- Remove EXPORT_SYMBOL
I chose the latter for this case because the only in-tree call-site,
drivers/net/phy/phy_device.c is never compiled as modular.
(CONFIG_PHYLIB is boolean)
Security readout for executives and security teams
Plain-English summary
This Linux kernel issue can lead to a kernel panic when a loadable module tries to use a function that was discarded after boot initialization. The public record does not show remote attack paths, active exploitation, or CVSS scoring.
Executive priority
Handle through normal kernel patch governance unless custom kernel modules are used. Escalate for network appliances, embedded systems, or fleets with third-party kernel modules.
Technical view
mdio_bus_init() was exported while marked __init. After initialization, .init.text is freed, so later module access could reference freed kernel code and panic. The fix removes the export because the only in-tree caller is not modular.
Likely exposure
Exposure appears limited to Linux systems running affected kernels where a module can reference mdio_bus_init(). The source does not identify specific distributions, appliances, or remote-facing services as affected.
Exploitation context
CISA KEV is false in the provided bundle. The sources describe a build and symbol export problem that may cause kernel panic, but provide no evidence of public exploitation.
Researcher notes
The record lacks CVSS, CWE, and exploit evidence. The key condition is an exported __init symbol later callable by modules after init memory is freed; upstream fixed this by removing EXPORT_SYMBOL.
Mitigation direction
Apply Linux vendor or distribution kernel updates carrying the referenced stable fixes.
Prioritize systems using custom, third-party, or out-of-tree kernel modules.
Check vendor advisories for fixed package versions before production rollout.
Avoid relying on direct kernel.org commits if your distribution backports fixes.
Validation and detection
Inventory Linux kernel versions across servers, appliances, and embedded systems.
Confirm whether affected systems load custom or third-party PHY/MDIO-related modules.
Check distribution CVE trackers or package changelogs for CVE-2022-49350 fixes.
Review kernel module build warnings for invalid __init symbol references.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2022-49350 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
0CVSS vectors
3Timeline events
0ADP providers
9Source links
Vulnerability timeline
Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.
CVE reservedCVE Program
The CVE ID was reserved by the assigning CNA.
CVE publishedCVE Program
The CVE record was published.
Feb 26, 2025, 02:11 UTC (UTC+00:00)
CVE updatedCVE Program
The CVE record metadata indicates this as the latest update time.