CVE-2026-90108 (GCVE-0-2026-90108)

Vulnerability from cvelistv5 – Published: 2026-09-17 16:06 – Updated: 2026-09-17 16:06
VLAI
Title
net/smc: free stashed qentry before overwrite in REQ_ADD_LINK to ADD_LINK transition
Summary
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.
Severity
No CVSS data available.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: b4ba4652b3f8b7c9bbb5786f8acf4724bdab2196 , < 7dd55348c0d9399a9448847819e9f3904ae507ad (git)
Affected: b4ba4652b3f8b7c9bbb5786f8acf4724bdab2196 , < 056395acb7041b3a1f2baa08d89a1938a8b8776a (git)
Affected: b4ba4652b3f8b7c9bbb5786f8acf4724bdab2196 , < b08aacfb226a840628151643b6a34eecf545d311 (git)
Affected: b4ba4652b3f8b7c9bbb5786f8acf4724bdab2196 , < 0fb9a513766071ea9d5f3bf988e39241b8e9ee3b (git)
Affected: b4ba4652b3f8b7c9bbb5786f8acf4724bdab2196 , < e25a602c45c76a7130878db72bcf6f76df04bf85 (git)
Affected: b4ba4652b3f8b7c9bbb5786f8acf4724bdab2196 , < 036322025d6e440cb75fc6fecbba9a16b271a2ae (git)
guessed Create a notification for this product.
Linux Linux Affected: 5.16
Unaffected: 0 , < 5.16 (semver)
Unaffected: 6.1.188 , ≤ 6.1.* (semver)
Unaffected: 6.6.157 , ≤ 6.6.* (semver)
Unaffected: 6.12.110 , ≤ 6.12.* (semver)
Unaffected: 6.18.52 , ≤ 6.18.* (semver)
Unaffected: 7.2.6 , ≤ 7.2.* (semver)
Unaffected: 7.3-rc1 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "net/smc/smc_llc.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "7dd55348c0d9399a9448847819e9f3904ae507ad",
              "status": "affected",
              "version": "b4ba4652b3f8b7c9bbb5786f8acf4724bdab2196",
              "versionType": "git"
            },
            {
              "lessThan": "056395acb7041b3a1f2baa08d89a1938a8b8776a",
              "status": "affected",
              "version": "b4ba4652b3f8b7c9bbb5786f8acf4724bdab2196",
              "versionType": "git"
            },
            {
              "lessThan": "b08aacfb226a840628151643b6a34eecf545d311",
              "status": "affected",
              "version": "b4ba4652b3f8b7c9bbb5786f8acf4724bdab2196",
              "versionType": "git"
            },
            {
              "lessThan": "0fb9a513766071ea9d5f3bf988e39241b8e9ee3b",
              "status": "affected",
              "version": "b4ba4652b3f8b7c9bbb5786f8acf4724bdab2196",
              "versionType": "git"
            },
            {
              "lessThan": "e25a602c45c76a7130878db72bcf6f76df04bf85",
              "status": "affected",
              "version": "b4ba4652b3f8b7c9bbb5786f8acf4724bdab2196",
              "versionType": "git"
            },
            {
              "lessThan": "036322025d6e440cb75fc6fecbba9a16b271a2ae",
              "status": "affected",
              "version": "b4ba4652b3f8b7c9bbb5786f8acf4724bdab2196",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "net/smc/smc_llc.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.16"
            },
            {
              "lessThan": "5.16",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.188",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.157",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.110",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.52",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.2.*",
              "status": "unaffected",
              "version": "7.2.6",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.3-rc1",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.188",
                  "versionStartIncluding": "5.16",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.157",
                  "versionStartIncluding": "5.16",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.110",
                  "versionStartIncluding": "5.16",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.52",
                  "versionStartIncluding": "5.16",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2.6",
                  "versionStartIncluding": "5.16",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.3-rc1",
                  "versionStartIncluding": "5.16",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet/smc: free stashed qentry before overwrite in REQ_ADD_LINK to ADD_LINK transition\n\nWhen smc_llc_event_handler() transitions the local LLC flow from\nSMC_LLC_FLOW_REQ_ADD_LINK to SMC_LLC_FLOW_ADD_LINK on arrival of an ADD_LINK\nrequest, it calls smc_llc_flow_qentry_set() unconditionally:\n\n\tif (lgr-\u003ellc_flow_lcl.type == SMC_LLC_FLOW_REQ_ADD_LINK) {\n\t\tlgr-\u003ellc_flow_lcl.type = SMC_LLC_FLOW_ADD_LINK;\n\t\tsmc_llc_flow_qentry_set(\u0026lgr-\u003ellc_flow_lcl, qentry);\n\t\t...\n\t}\n\nA CONFIRM_LINK or ADD_LINK_CONT arriving while flow-\u003etype is\nSMC_LLC_FLOW_REQ_ADD_LINK is stashed into flow-\u003eqentry via the\nSMC_LLC_CONFIRM_LINK / SMC_LLC_ADD_LINK_CONT handler (which stores into\nflow-\u003eqentry for any non-NONE flow type).  When the subsequent ADD_LINK\narrives, the REQ_ADD_LINK branch overwrites flow-\u003eqentry with the new pointer\nwithout first freeing the stashed allocation, leaking one kmalloc object.\n\nThe stashed entry has no consumer: smc_llc_wait() is only called from\nllc_add_link_work, which is not yet scheduled while the flow type remains\nREQ_ADD_LINK.  No waiter is sleeping on llc_msg_waiter at this point.\nIt is safe to unconditionally free any stashed qentry before\nthe overwrite.\n\nCall smc_llc_flow_qentry_del() before smc_llc_flow_qentry_set() in the\nREQ_ADD_LINK branch.  smc_llc_flow_qentry_del() already checks flow-\u003eqentry\nbefore freeing, so the normal path where no entry is stashed is a no-op."
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-09-17T16:06:16.813Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/7dd55348c0d9399a9448847819e9f3904ae507ad"
        },
        {
          "url": "https://git.kernel.org/stable/c/056395acb7041b3a1f2baa08d89a1938a8b8776a"
        },
        {
          "url": "https://git.kernel.org/stable/c/b08aacfb226a840628151643b6a34eecf545d311"
        },
        {
          "url": "https://git.kernel.org/stable/c/0fb9a513766071ea9d5f3bf988e39241b8e9ee3b"
        },
        {
          "url": "https://git.kernel.org/stable/c/e25a602c45c76a7130878db72bcf6f76df04bf85"
        },
        {
          "url": "https://git.kernel.org/stable/c/036322025d6e440cb75fc6fecbba9a16b271a2ae"
        }
      ],
      "title": "net/smc: free stashed qentry before overwrite in REQ_ADD_LINK to ADD_LINK transition",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-90108",
    "datePublished": "2026-09-17T16:06:16.813Z",
    "dateReserved": "2026-09-11T19:38:34.787Z",
    "dateUpdated": "2026-09-17T16:06:16.813Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-90108",
      "date": "2026-09-25",
      "epss": "0.00205",
      "percentile": "0.09378"
    },
    "microsoft_vex": {
      "current_release_date": "2026-09-23T01:51:03.000Z",
      "cve": "CVE-2026-90108",
      "id": "msrc_CVE-2026-90108",
      "initial_release_date": "2026-09-19T01:10:14.000Z",
      "product_status:known_affected": "2",
      "source": "Microsoft CSAF VEX",
      "status": "final",
      "title": "net/smc: free stashed qentry before overwrite in REQ_ADD_LINK to ADD_LINK transition",
      "url": "https://msrc.microsoft.com/csaf/vex/2026/msrc_cve-2026-90108.json",
      "version": "2"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "net/smc/smc_llc.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "7dd55348c0d9399a9448847819e9f3904ae507ad",
                    "status": "affected",
                    "version": "b4ba4652b3f8b7c9bbb5786f8acf4724bdab2196",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "056395acb7041b3a1f2baa08d89a1938a8b8776a",
                    "status": "affected",
                    "version": "b4ba4652b3f8b7c9bbb5786f8acf4724bdab2196",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "b08aacfb226a840628151643b6a34eecf545d311",
                    "status": "affected",
                    "version": "b4ba4652b3f8b7c9bbb5786f8acf4724bdab2196",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "0fb9a513766071ea9d5f3bf988e39241b8e9ee3b",
                    "status": "affected",
                    "version": "b4ba4652b3f8b7c9bbb5786f8acf4724bdab2196",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "e25a602c45c76a7130878db72bcf6f76df04bf85",
                    "status": "affected",
                    "version": "b4ba4652b3f8b7c9bbb5786f8acf4724bdab2196",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "036322025d6e440cb75fc6fecbba9a16b271a2ae",
                    "status": "affected",
                    "version": "b4ba4652b3f8b7c9bbb5786f8acf4724bdab2196",
                    "versionType": "git"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "net/smc/smc_llc.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "5.16"
                  },
                  {
                    "lessThan": "5.16",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.1.*",
                    "status": "unaffected",
                    "version": "6.1.188",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.6.*",
                    "status": "unaffected",
                    "version": "6.6.157",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.12.*",
                    "status": "unaffected",
                    "version": "6.12.110",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.18.*",
                    "status": "unaffected",
                    "version": "6.18.52",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "7.2.*",
                    "status": "unaffected",
                    "version": "7.2.6",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "*",
                    "status": "unaffected",
                    "version": "7.3-rc1",
                    "versionType": "original_commit_for_fix"
                  }
                ]
              }
            ],
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
          }
        ],
        "cveTags": [],
        "descriptions": [
          {
            "lang": "en",
            "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet/smc: free stashed qentry before overwrite in REQ_ADD_LINK to ADD_LINK transition\n\nWhen smc_llc_event_handler() transitions the local LLC flow from\nSMC_LLC_FLOW_REQ_ADD_LINK to SMC_LLC_FLOW_ADD_LINK on arrival of an ADD_LINK\nrequest, it calls smc_llc_flow_qentry_set() unconditionally:\n\n\tif (lgr-\u003ellc_flow_lcl.type == SMC_LLC_FLOW_REQ_ADD_LINK) {\n\t\tlgr-\u003ellc_flow_lcl.type = SMC_LLC_FLOW_ADD_LINK;\n\t\tsmc_llc_flow_qentry_set(\u0026lgr-\u003ellc_flow_lcl, qentry);\n\t\t...\n\t}\n\nA CONFIRM_LINK or ADD_LINK_CONT arriving while flow-\u003etype is\nSMC_LLC_FLOW_REQ_ADD_LINK is stashed into flow-\u003eqentry via the\nSMC_LLC_CONFIRM_LINK / SMC_LLC_ADD_LINK_CONT handler (which stores into\nflow-\u003eqentry for any non-NONE flow type).  When the subsequent ADD_LINK\narrives, the REQ_ADD_LINK branch overwrites flow-\u003eqentry with the new pointer\nwithout first freeing the stashed allocation, leaking one kmalloc object.\n\nThe stashed entry has no consumer: smc_llc_wait() is only called from\nllc_add_link_work, which is not yet scheduled while the flow type remains\nREQ_ADD_LINK.  No waiter is sleeping on llc_msg_waiter at this point.\nIt is safe to unconditionally free any stashed qentry before\nthe overwrite.\n\nCall smc_llc_flow_qentry_del() before smc_llc_flow_qentry_set() in the\nREQ_ADD_LINK branch.  smc_llc_flow_qentry_del() already checks flow-\u003eqentry\nbefore freeing, so the normal path where no entry is stashed is a no-op."
          }
        ],
        "id": "CVE-2026-90108",
        "lastModified": "2026-09-17T17:17:02.730",
        "metrics": {},
        "published": "2026-09-17T17:17:02.730",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/036322025d6e440cb75fc6fecbba9a16b271a2ae"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/056395acb7041b3a1f2baa08d89a1938a8b8776a"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/0fb9a513766071ea9d5f3bf988e39241b8e9ee3b"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/7dd55348c0d9399a9448847819e9f3904ae507ad"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/b08aacfb226a840628151643b6a34eecf545d311"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/e25a602c45c76a7130878db72bcf6f76df04bf85"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Received"
      }
    },
    "suse_vex": {
      "aggregate_severity": "low",
      "current_release_date": "2026-09-21T16:33:22Z",
      "cve": "CVE-2026-90108",
      "id": "CVE-2026-90108",
      "initial_release_date": "2026-09-18T00:21:21Z",
      "product_status:known_affected": "204",
      "product_status:known_not_affected": "143",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2026-90108",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2026-90108.json",
      "version": "4"
    }
  }
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Loading…

Loading…

Related by attack behaviour

Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.


Loading…