Bug 2348007 (CVE-2022-49350) - CVE-2022-49350 kernel: net: mdio: unexport __init-annotated mdio_bus_init()
Summary: CVE-2022-49350 kernel: net: mdio: unexport __init-annotated mdio_bus_init()
Keywords:
Status: NEW
Alias: CVE-2022-49350
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
low
low
Target Milestone: ---
Assignee: Product Security DevOps Team
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2025-02-26 03:14 UTC by OSIDB Bzimport
Modified: 2025-02-27 21:59 UTC (History)
4 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed:
Embargoed:


Attachments (Terms of Use)

Description OSIDB Bzimport 2025-02-26 03:14:22 UTC
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)

Comment 3 Avinash Hanwate 2025-02-27 21:54:38 UTC
Upstream advisory:
https://lore.kernel.org/linux-cve-announce/2025022642-CVE-2022-49350-c5d2@gregkh/T


Note You need to log in before you can comment on or make changes to this bug.