CVE-2026-90108

CVE-2026-90108

published September 17, 2026

CVSS
—
EPSS
0%
Percentile
10.0
In the wild
Unconfirmed
What it is

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

net/smc: free stashed qentry before overwrite in REQ_ADD_LINK to ADD_LINK transition

When smc_llc_event_handler() transitions the local LLC flow from

SMC_LLC_FLOW_REQ_ADD_LINK to SMC_LLC_FLOW_ADD_LINK on arrival of an ADD_LINK

request, it calls smc_llc_flow_qentry_set() unconditionally:

if (lgr->llc_flow_lcl.type == SMC_LLC_FLOW_REQ_ADD_LINK) {

lgr->llc_flow_lcl.type = SMC_LLC_FLOW_ADD_LINK;

smc_llc_flow_qentry_set(&lgr->llc_flow_lcl, qentry);

...

}

A CONFIRM_LINK or ADD_LINK_CONT arriving while flow->type is

SMC_LLC_FLOW_REQ_ADD_LINK is stashed into flow->qentry via the

SMC_LLC_CONFIRM_LINK / SMC_LLC_ADD_LINK_CONT handler (which stores into

flow->qentry for any non-NONE flow type). When the subsequent ADD_LINK

arrives, the REQ_ADD_LINK branch overwrites flow->qentry with the new pointer

without first freeing the stashed allocation, leaking one kmalloc object.

The stashed entry has no consumer: smc_llc_wait() is only called from

llc_add_link_work, which is not yet scheduled while the flow type remains

REQ_ADD_LINK. No waiter is sleeping on llc_msg_waiter at this point.

It is safe to unconditionally free any stashed qentry before

the overwrite.

Call smc_llc_flow_qentry_del() before smc_llc_flow_qentry_set() in the

REQ_ADD_LINK branch. smc_llc_flow_qentry_del() already checks flow->qentry

before freeing, so the normal path where no entry is stashed is a no-op.

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00205 · 10.0th percentile
Published
2026-09-17T21:17Z
References (6)
EPSS history
Timeline
  • 19 SEP 03:55Z
    EPSS moved — → 0%
    epss
  • 17 SEP 16:06Z
    net/smc: free stashed qentry before overwrite in REQ_ADD_LINK to ADD_LINK transition
    cvelistv5