Description (CNA)
In the Linux kernel, the following vulnerability has been resolved: net/smc: fix qentry overwrite for CONFIRM_LINK and ADD_LINK_CONT in smc_llc_event_handler() The SMC_LLC_CONFIRM_LINK / SMC_LLC_ADD_LINK_CONT branch in smc_llc_event_handler() stores an incoming qentry into the local LLC flow without first checking whether a qentry is already pending. If a malicious or buggy peer sends a second CONFIRM_LINK or ADD_LINK_CONT request while a flow is active and flow->qentry is already set, smc_llc_flow_qentry_set() overwrites the pointer without freeing the previous allocation, leaking one kmalloc-96 object per spurious message. The sibling SMC_LLC_DELETE_LINK branch already has the correct !flow->qentry guard. Apply the same guard to the CONFIRM_LINK/ADD_LINK_CONT branch so that a duplicate message when qentry is already occupied falls through to break and is freed by the kfree(qentry) at the out: label, rather than silently leaking the existing allocation. The response direction (smc_llc_rx_response()) is unaffected: it already guards with flow->qentry at the equivalent site and drops duplicate responses correctly.
Affected (CNA)
| Vendor / product | Versions |
|---|---|
| Linux / Linux | affected 0fb0b02bd6fd26cba38002be4a6bbcae2228fd44 before e384f3cba6ea709f5b2272b1770db4ce14047f78; affected 0fb0b02bd6fd26cba38002be4a6bbcae2228fd44 before a1e980d7a9e7ee6faf4f5fd7b450413b969af26d; affected 0fb0b02bd6fd26cba38002be4a6bbcae2228fd44 before e0eb87677c76b157cdf8eb7c1f19e56227165a33; affected 0fb0b02bd6fd26cba38002be4a6bbcae2228fd44 before 06734dfeaeba886aab1bf147249195b888ac3e4d; affected 0fb0b02bd6fd26cba38002be4a6bbcae2228fd44 before c23c409228629107203d3c3e95fff1473173f1a6; affected 0fb0b02bd6fd26cba38002be4a6bbcae2228fd44 before 10cb31b2b74cb664c6c95cf72364d7d5c483ab82; affected 0fb0b02bd6fd26cba38002be4a6bbcae2228fd44 before bfc336a9fbbf09805f3dfe25c195a4db90af2846; affected 0fb0b02bd6fd26cba38002be4a6bbcae2228fd44 before 976245094925bab9bc39366b2e9ab44ffcde61d0 |
| Linux / Linux | affected 5.8; unaffected 0 before 5.8; unaffected 5.10.265 through 5.10.*; unaffected 5.15.216 through 5.15.*; unaffected 6.1.183 through 6.1.*; unaffected 6.6.152 through 6.6.*; unaffected 6.12.104 through 6.12.*; unaffected 6.18.45 through 6.18.*; unaffected 7.1.9 through 7.1.*; unaffected 7.2 through * |
CWE
No CWE identifiers supplied.
References
- https://git.kernel.org/stable/c/e384f3cba6ea709f5b2272b1770db4ce14047f78
- https://git.kernel.org/stable/c/a1e980d7a9e7ee6faf4f5fd7b450413b969af26d
- https://git.kernel.org/stable/c/e0eb87677c76b157cdf8eb7c1f19e56227165a33
- https://git.kernel.org/stable/c/06734dfeaeba886aab1bf147249195b888ac3e4d
- https://git.kernel.org/stable/c/c23c409228629107203d3c3e95fff1473173f1a6
- https://git.kernel.org/stable/c/10cb31b2b74cb664c6c95cf72364d7d5c483ab82
- https://git.kernel.org/stable/c/bfc336a9fbbf09805f3dfe25c195a4db90af2846
- https://git.kernel.org/stable/c/976245094925bab9bc39366b2e9ab44ffcde61d0