net/smc: fix qentry overwrite for CONFIRM_LINK and ADD_LINK_CONT in smc_llc_event_handler()
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
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.
Timeline
- CVE published
Affected versions
- Linux Linux
Version range not reported
- Linux Linux
5.8
References 8
git.kernel.org
- stable/c/e384f3cba6ea709f5b2272b1770db4ce14047f78
- stable/c/a1e980d7a9e7ee6faf4f5fd7b450413b969af26d
- stable/c/e0eb87677c76b157cdf8eb7c1f19e56227165a33
- stable/c/06734dfeaeba886aab1bf147249195b888ac3e4d
- stable/c/c23c409228629107203d3c3e95fff1473173f1a6
- stable/c/10cb31b2b74cb664c6c95cf72364d7d5c483ab82
- stable/c/bfc336a9fbbf09805f3dfe25c195a4db90af2846
- stable/c/976245094925bab9bc39366b2e9ab44ffcde61d0