Linux vulnerability

In the Linux kernel, the following vulnerability has been resolved: net/smc: unregister the connection before draining the rx tasklet smc_conn_free() calls smc_ism_unset_conn() only while the link group is still on its device list, and never sets conn->killed. smc_lgr_terminate_sched() unlinks the group immediately and defers killing its connections to a work item, so a connection freed in that window keeps its smcd->conn[] slot with both gates in smcd_handle_irq() open, and the device can re-arm the receive tasklet after tasklet_kill() has returned. On the DMB-nocopy path the ghost send buffer is freed right after that drain, so the re-armed tasklet dereferences it. Unregister unconditionally and drain before the detach at both teardown sites, mirroring rmb_desc, which smc_buf_unuse() releases after the drain. Clear conn->sndbuf_desc before freeing it as well, so a reader that samples the pointer cannot get one that is already freed.

Published 11 Sep 2026Updated 13 Sep 20264 sources
CVSS 7.8

What happened

In the Linux kernel, the following vulnerability has been resolved: net/smc: unregister the connection before draining the rx tasklet smc_conn_free() calls smc_ism_unset_conn() only while the link group is still on its device list, and never sets conn->killed. smc_lgr_terminate_sched() unlinks the group immediately and defers killing its connections to a work item, so a connection freed in that window keeps its smcd->conn[] slot with both gates in smcd_handle_irq() open, and the device can re-arm the receive tasklet after tasklet_kill() has returned. On the DMB-nocopy path the ghost send buffer is freed right after that drain, so the re-armed tasklet dereferences it. Unregister unconditionally and drain before the detach at both teardown sites, mirroring rmb_desc, which smc_buf_unuse() releases after the drain. Clear conn->sndbuf_desc before freeing it as well, so a reader that samples the pointer cannot get one that is already freed.

Affected versions

Linux: ae2be35cbed2c8385e890147ea321a3fcc3ca5fa through before b4d540ac95cd35c6ebab6afb7eae2bcac7b277a5 (git); ae2be35cbed2c8385e890147ea321a3fcc3ca5fa through before 5bd8b764a610b6b6bc0c4d3d01652747f6e0b5c3 (git); ae2be35cbed2c8385e890147ea321a3fcc3ca5fa through before b74d313567dfc1b7e56629ddbad04e728686f235 (git); ae2be35cbed2c8385e890147ea321a3fcc3ca5fa through before 36cdf5d48ca191dcd71c28cadbe0981b1d25318d (git); 21f6f41e82e59740e26e06e77bdf58dc7f6f08dd (git); 6.6.66 through before 6.7 (semver); 6.10 Fixed: See vendor advisory.

Why it matters

Review the vendor advisory and exposure of the affected product to determine operational impact.

Detection & mitigation

  • Apply vendor-provided updates or mitigations.
  • Review affected product exposure and access logs.

Public PoC references

No public PoC reference has passed the current publication threshold.