{"id":25517,"date":"2026-09-18T04:31:30","date_gmt":"2026-09-17T20:31:30","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-90108"},"modified":"2026-09-18T04:31:30","modified_gmt":"2026-09-17T20:31:30","slug":"cve-2026-90108","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-90108","title":{"rendered":"CVE-2026-90108 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nnet\/smc: free stashed"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>net\/smc: free stashed qentry before overwrite in REQ_ADD_LINK to ADD_LINK transition<\/p>\n<p>When smc_llc_event_handler() transitions the local LLC flow from<br \/>\nSMC_LLC_FLOW_REQ_ADD_LINK to SMC_LLC_FLOW_ADD_LINK on arrival of an ADD_LINK<br \/>\nrequest, it calls smc_llc_flow_qentry_set() unconditionally:<\/p>\n<p>\tif (lgr-&gt;llc_flow_lcl.type == SMC_LLC_FLOW_REQ_ADD_LINK) {<br \/>\n\t\tlgr-&gt;llc_flow_lcl.type = SMC_LLC_FLOW_ADD_LINK;<br \/>\n\t\tsmc_llc_flow_qentry_set(&amp;lgr-&gt;llc_flow_lcl, qentry);<br \/>\n\t\t&#8230;<br \/>\n\t}<\/p>\n<p>A CONFIRM_LINK or ADD_LINK_CONT arriving while flow-&gt;type is<br \/>\nSMC_LLC_FLOW_REQ_ADD_LINK is stashed into flow-&gt;qentry via the<br \/>\nSMC_LLC_CONFIRM_LINK \/ SMC_LLC_ADD_LINK_CONT handler (which stores into<br \/>\nflow-&gt;qentry for any non-NONE flow type).  When the subsequent ADD_LINK<br \/>\narrives, the REQ_ADD_LINK branch overwrites flow-&gt;qentry with the new pointer<br \/>\nwithout first freeing the stashed allocation, leaking one kmalloc object.<\/p>\n<p>The stashed entry has no consumer: smc_llc_wait() is only called from<br \/>\nllc_add_link_work, which is not yet scheduled while the flow type remains<br \/>\nREQ_ADD_LINK.  No waiter is sleeping on llc_msg_waiter at this point.<br \/>\nIt is safe to unconditionally free any stashed qentry before<br \/>\nthe overwrite.<\/p>\n<p>Call smc_llc_flow_qentry_del() before smc_llc_flow_qentry_set() in the<br \/>\nREQ_ADD_LINK branch.  smc_llc_flow_qentry_del() already checks flow-&gt;qentry<br \/>\nbefore freeing, so the normal path where no entry is stashed is a no-op.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>net\/smc: free stashed qentry before overwrite in REQ_ADD_LINK to ADD_LINK transition<\/p>\n<p>When smc_llc_event_handler() transitions the <\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-25517","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/25517","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=25517"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=25517"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=25517"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}