CVE-2026-90107: net/smc: free pending qentry in smc_llc_flow_stop() before memset

Published Sep 17, 2026
·
Updated

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

net/smc: free pending qentry in smcllcflowstop() before memset

smcllcflowstop() resets a flow struct with a blind memset:

spinlockbh(&lgr->llcflowlock); memset(flow, 0, sizeof(flow)); flow->type = SMCLLCFLOWNONE; spinunlockbh(&lgr->llcflowlock);

If flow->qentry is non-NULL at this point the pointer is overwritten without the allocation being freed, leaking one kmalloc object.

A late-arriving duplicate CONFIRMLINK or ADDLINKCONT message can set flow->qentry after the legitimate message has been consumed by the waiter via smcllcflowqentryclr() (which NULLs the pointer but leaves flow->type non-zero) but before the flow completes and smcllcflowstop() runs. In that window the duplicate is stashed into flow->qentry, and then lost when smcllcflowstop() zeros the struct.

Call smcllcflowqentrydel() inside the lock before the memset. smcllcflowqentrydel() already checks flow->qentry before freeing, so the normal case where no entry is pending is a no-op.

Affected Software

1 affected component
The Linux Kernel Linux kernel

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Configuration

    In net/smc, update smc_llc_flow_stop() to free any pending flow->qentry (using smc_llc_flow_qentry_del()/equivalent logic that checks flow->qentry) before the blind memset that zeros the flow struct; ensure the qentry free happens under the appropriate lock (as described: hold llc_flow_lock while freeing) and before memset(flow, 0, sizeof(*flow)).

    Linux kernel net/smc smc_llc_flow_stop() free pending qentry before memset = Implement fix: free pending qentry in smc_llc_flow_stop() before memset(flow, 0, sizeof(*flow))

Event History

Sep 17, 2026
CVE Published
via MITRE·04:06 PM
Data Sourced
via MITRE·04:06 PM
Description

Frequently Asked Questions

1

What traffic condition is required for the leak to occur?

A duplicate CONFIRM_LINK or ADD_LINK_CONT message must arrive after the legitimate message has been consumed by the waiter, but before the flow completes and is reset. The duplicate message can then be stored in the flow's qentry pointer during that window.

2

What is the impact when the race is triggered?

One kmalloc object is leaked because the pending qentry pointer is overwritten when the flow structure is zeroed. The affected flow cleanup path must delete the pending qentry before resetting the structure.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203