Skip to main content

CVE-2022-49675: Vulnerability in Linux Linux

Medium
VulnerabilityCVE-2022-49675cvecve-2022-49675
Published: Wed Feb 26 2025 (02/26/2025, 02:24:07 UTC)
Source: CVE
Vendor/Project: Linux
Product: Linux

Description

In the Linux kernel, the following vulnerability has been resolved: tick/nohz: unexport __init-annotated tick_nohz_full_setup() 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 had been broken for a decade. Commit 28438794aba4 ("modpost: fix section mismatch check for exported init/exit sections") fixed it so modpost started to warn it again, then this showed up: MODPOST vmlinux.symvers WARNING: modpost: vmlinux.o(___ksymtab_gpl+tick_nohz_full_setup+0x0): Section mismatch in reference from the variable __ksymtab_tick_nohz_full_setup to the function .init.text:tick_nohz_full_setup() The symbol tick_nohz_full_setup is exported and annotated __init Fix this by removing the __init annotation of tick_nohz_full_setup or drop the export. Drop the export because tick_nohz_full_setup() is only called from the built-in code in kernel/sched/isolation.c.

AI-Powered Analysis

AILast updated: 06/30/2025, 00:09:43 UTC

Technical Analysis

CVE-2022-49675 is a vulnerability identified in the Linux kernel related to the improper use of the __init annotation combined with EXPORT_SYMBOL in the tick/nohz subsystem. Specifically, the function tick_nohz_full_setup() was marked with the __init annotation and simultaneously exported as a symbol. The __init annotation indicates that the function resides in the .init.text section, which is freed after kernel initialization to save memory. Exporting such a symbol allows kernel modules to reference a function that may no longer exist in memory, potentially leading to a kernel panic due to access to freed memory. This issue was not detected for over a decade because the modpost tool, which checks for section mismatches, was broken. A recent fix to modpost re-enabled these warnings, revealing the problem. The resolution involved dropping the export of tick_nohz_full_setup() since it is only called from built-in kernel code, eliminating the risk of external modules referencing the freed symbol. This vulnerability is a logic and memory management flaw in kernel code that could cause system instability or crashes if exploited. There are no known exploits in the wild, and the affected versions correspond to specific Linux kernel commits. The vulnerability does not involve user-space interaction or authentication but could cause denial of service through kernel panic if triggered.

Potential Impact

For European organizations, the impact of CVE-2022-49675 primarily concerns system stability and availability. Linux is widely used in servers, cloud infrastructure, embedded devices, and critical systems across Europe. A kernel panic caused by referencing freed initialization code could lead to unexpected system crashes, resulting in downtime and potential disruption of services. While this vulnerability does not directly expose confidentiality or integrity risks, denial of service conditions in critical infrastructure or enterprise environments could have significant operational and financial consequences. Organizations relying on custom or third-party kernel modules that might inadvertently reference the exported __init function are at higher risk. The absence of known exploits reduces immediate threat levels, but unpatched systems remain vulnerable to accidental or targeted triggering of this flaw. Given the prevalence of Linux in European data centers, telecommunications, and government systems, the vulnerability could affect a broad range of sectors if not addressed promptly.

Mitigation Recommendations

To mitigate CVE-2022-49675, European organizations should: 1) Apply the official Linux kernel patches that remove the EXPORT_SYMBOL annotation from the __init-annotated tick_nohz_full_setup() function, ensuring that no kernel modules can reference freed initialization code. 2) Audit and review any custom or third-party kernel modules in use to verify they do not depend on exported __init functions, which could cause instability. 3) Implement rigorous kernel module testing in staging environments to detect potential kernel panics related to section mismatches before deployment. 4) Monitor kernel logs for warnings related to modpost or section mismatches as early indicators of similar issues. 5) Maintain up-to-date kernel versions and subscribe to Linux kernel security advisories to receive timely notifications of such vulnerabilities. 6) For critical systems, consider deploying kernel lockdown or module signing policies to prevent loading of untrusted or outdated modules that might trigger this vulnerability. These steps go beyond generic patching by emphasizing proactive module auditing and operational monitoring to prevent exploitation or accidental triggering.

Need more detailed analysis?Get Pro

Technical Details

Data Version
5.1
Assigner Short Name
Linux
Date Reserved
2025-02-26T02:21:30.438Z
Cisa Enriched
false
Cvss Version
null
State
PUBLISHED

Threat ID: 682d982cc4522896dcbe47df

Added to database: 5/21/2025, 9:09:00 AM

Last enriched: 6/30/2025, 12:09:43 AM

Last updated: 8/4/2025, 6:25:16 PM

Views: 15

Actions

PRO

Updates to AI analysis are available only with a Pro account. Contact root@offseq.com for access.

Please log in to the Console to use AI analysis features.

Need enhanced features?

Contact root@offseq.com for Pro access with improved analysis and higher rate limits.

Latest Threats