CVE-2022-49350: Vulnerability in Linux Linux
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)
AI Analysis
Technical Summary
CVE-2022-49350 is a vulnerability identified in the Linux kernel related to the improper use of the __init annotation combined with EXPORT_SYMBOL in the mdio_bus_init() function within the network subsystem. The __init annotation marks functions or data to be placed in a special memory section (.init.text) that is freed after the kernel initialization phase. EXPORT_SYMBOL is used to make kernel symbols available to loadable modules. The combination of these two is problematic because once the .init.text section is freed, any module attempting to access a symbol annotated with __init will be referencing freed memory, which can lead to undefined behavior including kernel panics. This issue was historically detected by the modpost tool during kernel builds, but the detection mechanism had been broken for about a decade. Recently, modpost was fixed to warn about this issue again, revealing this vulnerability in linux-next builds. The fix chosen was to remove the EXPORT_SYMBOL annotation rather than the __init annotation because the affected call-site (drivers/net/phy/phy_device.c) is never compiled as a module (CONFIG_PHYLIB is boolean), thus eliminating the risk of modules accessing freed symbols. This vulnerability is a design and coding flaw in kernel module symbol management that can cause system instability or crashes due to kernel panics triggered by accessing freed memory sections. No known exploits are currently reported in the wild, and no CVSS score has been assigned yet.
Potential Impact
For European organizations, the impact of this vulnerability primarily concerns system stability and availability. Linux is widely used in servers, embedded systems, and network infrastructure across Europe, including critical sectors such as telecommunications, finance, government, and industrial control systems. A kernel panic resulting from this vulnerability could cause unexpected system reboots or downtime, potentially disrupting services and operations. Although this vulnerability does not directly lead to privilege escalation or remote code execution, the resulting denial of service (DoS) could be leveraged by attackers to degrade service availability. Systems running custom or modular kernel builds that might inadvertently export the affected symbol could be at higher risk. Given the widespread deployment of Linux in European data centers and critical infrastructure, even transient instability can have cascading effects on business continuity and service reliability.
Mitigation Recommendations
European organizations should ensure their Linux kernel versions are updated to include the patch that removes the EXPORT_SYMBOL annotation from the __init-annotated mdio_bus_init() function. Specifically, kernel maintainers and system administrators should verify that their kernel builds do not export __init-annotated symbols, particularly in network-related modules. For environments using custom kernel modules, a thorough audit of module symbol exports should be conducted to ensure no __init symbols are exported. Additionally, organizations should implement robust kernel update policies and test kernel updates in staging environments to detect any regressions or stability issues. Monitoring system logs for kernel panics or unusual module loading errors can help detect exploitation attempts or misconfigurations. Finally, organizations should maintain good backup and recovery procedures to minimize downtime in case of kernel crashes.
Affected Countries
Germany, France, United Kingdom, Netherlands, Sweden, Finland, Italy, Spain
CVE-2022-49350: Vulnerability in Linux Linux
Description
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)
AI-Powered Analysis
Technical Analysis
CVE-2022-49350 is a vulnerability identified in the Linux kernel related to the improper use of the __init annotation combined with EXPORT_SYMBOL in the mdio_bus_init() function within the network subsystem. The __init annotation marks functions or data to be placed in a special memory section (.init.text) that is freed after the kernel initialization phase. EXPORT_SYMBOL is used to make kernel symbols available to loadable modules. The combination of these two is problematic because once the .init.text section is freed, any module attempting to access a symbol annotated with __init will be referencing freed memory, which can lead to undefined behavior including kernel panics. This issue was historically detected by the modpost tool during kernel builds, but the detection mechanism had been broken for about a decade. Recently, modpost was fixed to warn about this issue again, revealing this vulnerability in linux-next builds. The fix chosen was to remove the EXPORT_SYMBOL annotation rather than the __init annotation because the affected call-site (drivers/net/phy/phy_device.c) is never compiled as a module (CONFIG_PHYLIB is boolean), thus eliminating the risk of modules accessing freed symbols. This vulnerability is a design and coding flaw in kernel module symbol management that can cause system instability or crashes due to kernel panics triggered by accessing freed memory sections. No known exploits are currently reported in the wild, and no CVSS score has been assigned yet.
Potential Impact
For European organizations, the impact of this vulnerability primarily concerns system stability and availability. Linux is widely used in servers, embedded systems, and network infrastructure across Europe, including critical sectors such as telecommunications, finance, government, and industrial control systems. A kernel panic resulting from this vulnerability could cause unexpected system reboots or downtime, potentially disrupting services and operations. Although this vulnerability does not directly lead to privilege escalation or remote code execution, the resulting denial of service (DoS) could be leveraged by attackers to degrade service availability. Systems running custom or modular kernel builds that might inadvertently export the affected symbol could be at higher risk. Given the widespread deployment of Linux in European data centers and critical infrastructure, even transient instability can have cascading effects on business continuity and service reliability.
Mitigation Recommendations
European organizations should ensure their Linux kernel versions are updated to include the patch that removes the EXPORT_SYMBOL annotation from the __init-annotated mdio_bus_init() function. Specifically, kernel maintainers and system administrators should verify that their kernel builds do not export __init-annotated symbols, particularly in network-related modules. For environments using custom kernel modules, a thorough audit of module symbol exports should be conducted to ensure no __init symbols are exported. Additionally, organizations should implement robust kernel update policies and test kernel updates in staging environments to detect any regressions or stability issues. Monitoring system logs for kernel panics or unusual module loading errors can help detect exploitation attempts or misconfigurations. Finally, organizations should maintain good backup and recovery procedures to minimize downtime in case of kernel crashes.
Affected Countries
For access to advanced analysis and higher rate limits, contact root@offseq.com
Technical Details
- Data Version
- 5.1
- Assigner Short Name
- Linux
- Date Reserved
- 2025-02-26T02:08:31.544Z
- Cisa Enriched
- false
- Cvss Version
- null
- State
- PUBLISHED
Threat ID: 682d982dc4522896dcbe573e
Added to database: 5/21/2025, 9:09:01 AM
Last enriched: 6/30/2025, 6:11:21 AM
Last updated: 7/26/2025, 11:25:47 AM
Views: 9
Related Threats
CVE-2025-8708: Deserialization in Antabot White-Jotter
LowCVE-2025-8707: Improper Export of Android Application Components in Huuge Box App
MediumCVE-2025-8706: SQL Injection in Wanzhou WOES Intelligent Optimization Energy Saving System
MediumCVE-2025-8705: SQL Injection in Wanzhou WOES Intelligent Optimization Energy Saving System
MediumCVE-2025-8704: SQL Injection in Wanzhou WOES Intelligent Optimization Energy Saving System
MediumActions
Updates to AI analysis are available only with a Pro account. Contact root@offseq.com for access.
External Links
Need enhanced features?
Contact root@offseq.com for Pro access with improved analysis and higher rate limits.