Bug 2347948 (CVE-2022-49726) - CVE-2022-49726 kernel: clocksource: hyper-v: unexport __init-annotated hv_init_clocksource()
Summary: CVE-2022-49726 kernel: clocksource: hyper-v: unexport __init-annotated hv_ini...
Keywords:
Status: NEW
Alias: CVE-2022-49726
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Product Security DevOps Team
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2025-02-26 03:12 UTC by OSIDB Bzimport
Modified: 2025-02-26 19:17 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:12:20 UTC
In the Linux kernel, the following vulnerability has been resolved:

clocksource: hyper-v: unexport __init-annotated hv_init_clocksource()

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,
arch/x86/kernel/cpu/mshyperv.c is never compiled as modular.
(CONFIG_HYPERVISOR_GUEST is boolean)

Comment 1 Avinash Hanwate 2025-02-26 19:05:37 UTC
Upstream advisory:
https://lore.kernel.org/linux-cve-announce/2025022633-CVE-2022-49726-582f@gregkh/T


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