CVE-2024-56641: net/smc: initialize close_work early to avoid warning
In the Linux kernel, the following vulnerability has been resolved:
net/smc: initialize close_work early to avoid warning
We encountered a warning that close_work was canceled before
initialization.
WARNING: CPU: 7 PID: 111103 at kernel/workqueue.c:3047 __flush_work+0x19e/0x1b0
Workqueue: events smc_lgr_terminate_work [smc]
RIP: 0010:__flush_work+0x19e/0x1b0
Call Trace:
? __wake_up_common+0x7a/0x190
? work_busy+0x80/0x80
__cancel_work_timer+0xe3/0x160
smc_close_cancel_work+0x1a/0x70 [smc]
smc_close_active_abort+0x207/0x360 [smc]
__smc_lgr_terminate.part.38+0xc8/0x180 [smc]
process_one_work+0x19e/0x340
worker_thread+0x30/0x370
? process_one_work+0x340/0x340
kthread+0x117/0x130
? __kthread_cancel_work+0x50/0x50
ret_from_fork+0x22/0x30
This is because when smc_close_cancel_work is triggered, e.g. the RDMA
driver is rmmod and the LGR is terminated, the conn->close_work is
flushed before initialization, resulting in WARN_ON(!work->func).
__smc_lgr_terminate | smc_connect_{rdma|ism}
-------------------------------------------------------------
| smc_conn_create
| \- smc_lgr_register_conn
for conn in lgr->conns_all |
\- smc_conn_kill |
\- smc_close_active_abort |
\- smc_close_cancel_work |
\- cancel_work_sync |
\- __flush_work |
(close_work) |
| smc_close_init
| \- INIT_WORK(&close_work)
So fix this by initializing close_work before establishing the
connection.
Security readout for executives and security teams
Plain-English summary
A Linux kernel race can cancel an SMC connection’s cleanup task before that task is initialized, producing a kernel warning and potentially disrupting availability. The supplied CVSS score is 7.5, driven by possible availability loss. No confidentiality or integrity impact is identified.
Executive priority
Prioritize remediation on production systems using SMC, especially where availability is important or RDMA drivers change during operation. Treat non-SMC systems as lower urgency after confirming the subsystem is unused. There is no supplied evidence of active exploitation, so response should be risk-based rather than emergency-wide shutdown.
Technical view
During SMC link-group termination, smc_close_cancel_work may call cancel_work_sync on conn->close_work before smc_close_init initializes it. This can reach __flush_work and trigger WARN_ON(!work->func). The kernel fix initializes close_work before connection establishment, removing the unsafe ordering.
Likely exposure
Exposure is limited to affected Linux kernels exercising SMC connection handling, particularly RDMA or ISM connection establishment concurrent with link-group termination. Driver removal is one documented trigger. The bundle lists affected identifiers including 4.12, 6.6.66, 6.12.5, and 6.13, but does not provide complete distribution-package mappings.
Exploitation context
The bundle reports no CISA KEV listing and provides no evidence of active exploitation or a public exploit. Although the supplied CVSS vector rates the attack vector as network-accessible, the description documents a concurrency condition involving SMC connection setup and termination. Reliable attacker control and resulting impact beyond the warning are not established here.
Researcher notes
The core issue is initialization ordering across concurrent SMC connection registration and link-group termination. The source demonstrates a WARN_ON reached by cancel_work_sync before INIT_WORK. It does not establish memory corruption, privilege escalation, data exposure, reliable remote denial of service, or exploitability details. Version assessment should use the relevant stable commit and distribution backport records.
Mitigation direction
Apply a vendor-supported kernel containing the cited initialization fix.
Check distribution advisories for package versions mapping to the stable-kernel commits.
Prioritize systems actively using SMC with RDMA or ISM connectivity.
If patching is delayed, consult vendor guidance for supported SMC exposure reduction.
Validation and detection
Inventory running kernel versions on systems capable of using SMC.
Determine whether SMC, RDMA, or ISM connection paths are actively used.
Verify the installed kernel includes the applicable cited stable commit.
Review kernel logs for __flush_work warnings involving smc_close_cancel_work.
Retest normal SMC connection and termination behavior after updating.
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-2024-56641 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.
1CVSS vectors
3Timeline events
0ADP providers
4Source links
CVSS vector scores
1 official score
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.