CVE-2026-80983

net/smc: fix socket refcount leak in smc_switch_conns()

State
Published
Severity
Not scored
Published
Sep 11, 2026
Updated
Oct 30, 2026
Reserved
Aug 26, 2026

Read the record on cve.org

Description

In the Linux kernel, the following vulnerability has been resolved:

net/smc: fix socket refcount leak in smc_switch_conns()

smc_switch_conns() takes a reference on the SMC socket before dropping lgr->conns_lock, so the connection stays alive while the CDC slot is fetched:

sock_hold(&smc->sk); read_unlock_bh(&lgr->conns_lock); /* pre-fetch buffer outside of send_lock, might sleep */ rc = smc_cdc_get_free_slot(conn, to_lnk, &wr_buf, NULL, &pend); if (rc) goto err_out;

The err_out label only drops the wr_tx link reference, so this early exit returns without the matching sock_put(). The second error exit is not affected, because sock_put() has already run by then.

A leaked sk_refcnt means the smc_sock is never destroyed. Its send and receive buffers stay allocated, and for a user socket the reference held on the network namespace is never released, so the netns can no longer be torn down.

smc_cdc_get_free_slot() fails when the target link goes down or when the connection has been killed while the switch is in progress. Both are reachable during the link failover this function implements, so the leak is triggered by the same hardware events that make smc_switch_conns() run in the first place.

Restructure so there is a single sock_put() covering both outcomes, instead of adding a second one to the error path.

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 99f19566b1c4d3dc4d934ee2ef43faadebb56d70 to before 8cb289eb764ff18000a33ddbc287d676d8597eeaAffected
  • 95f7f3e7dc6bd2e735cb5de11734ea2222b1e05a to before a3378466704e0bbe93aef9769552dca7673a7eb6Affected
  • 95f7f3e7dc6bd2e735cb5de11734ea2222b1e05a to before e20227019d9da73f8fdf16f0951c2e188c84933fAffected
  • 95f7f3e7dc6bd2e735cb5de11734ea2222b1e05a to before 09d7a9e162ee1a269878c126aee3d7eff43e4130Affected
  • 95f7f3e7dc6bd2e735cb5de11734ea2222b1e05a to before 84dea0585f6b538ae895a8b1d025f4897737f3b1Affected
  • 95f7f3e7dc6bd2e735cb5de11734ea2222b1e05a to before d89dc1bd8845c669a700eee58c64ebd3cc1b6d2dAffected
  • 95f7f3e7dc6bd2e735cb5de11734ea2222b1e05a to before d9a879ac25958bdaecb669ce70e58f8e2ff170deAffected
  • 95f7f3e7dc6bd2e735cb5de11734ea2222b1e05a to before 719296c4aa8213d4ac8002e77d5956d436bc98d0Affected
  • 0d9ddf515cde793841f738490037560fd6559c63Affected
  • 5.10.90 to before 5.10.273Affected
  • 5.14.14 to before 5.15Affected
LinuxLinux
  • 5.15Affected
  • before 5.15Not affected
  • 5.10.273 through 5.10.*Not affected
  • 5.15.221 through 5.15.*Not affected
  • 6.1.188 through 6.1.*Not affected
  • 6.6.157 through 6.6.*Not affected
  • 6.12.109 through 6.12.*Not affected
  • 6.18.50 through 6.18.*Not affected
  • 7.2.4 through 7.2.*Not affected
  • 7.3 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.