In the Linux kernel, the following vulnerability has been resolved:
net: xfrm: unexport __init-annotated xfrm4_protocol_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,
net/ipv4/xfrm4_policy.c is never compiled as modular.
(CONFIG_XFRM is boolean)
Security readout for executives and security teams
Plain-English summary
This is a Linux kernel reliability flaw in the network XFRM area. A function meant only for boot-time initialization was exported for later module use, even though its memory is freed after initialization. If used afterward, it could cause a kernel panic and service outage.
Executive priority
Treat this as routine kernel hygiene unless affected systems have strict availability requirements. There is no source evidence of exploitation, but kernel panic risk still matters for production resilience.
Technical view
The issue is the exported __init-annotated xfrm4_protocol_init() symbol. __init code is placed in .init.text and freed after initialization, so module access after boot can dereference freed kernel text. The upstream fix removes EXPORT_SYMBOL because the only in-tree caller is not modular under CONFIG_XFRM.
Likely exposure
Exposure is limited to Linux systems running affected kernel versions or downstream kernels that retained the bad export. The source lists Linux as affected and references stable kernel commits. Confirm exposure against the running kernel build and vendor backport status.
Exploitation context
The bundle does not show active exploitation, KEV listing, public exploit activity, CVSS, or CWE classification. The documented impact is potential kernel panic from access to a freed init symbol, not demonstrated remote code execution.
Researcher notes
The source evidence supports a freed init-text access risk caused by EXPORT_SYMBOL on an __init function. The fix rationale is explicit: remove the export because the in-tree caller is never modular. Evidence is incomplete for exploitability prerequisites and real-world reachability.
Mitigation direction
Update to a vendor kernel containing the referenced stable fix.
Check distribution advisories for backported patches before relying on version strings.
Prioritize hosts where kernel panics would cause critical outages.
Use normal kernel change windows and reboot procedures after patching.
Validation and detection
Inventory running Linux kernel versions across servers and appliances.
Compare kernel packages against vendor advisories or the referenced stable commits.
Confirm the xfrm4_protocol_init export is absent in patched kernel sources or symbols.
Review uptime and crash telemetry for unexplained kernel panics.
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-49345 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
10Source 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.