GCVE Workshop - 22 September 2026 (14:00-18:00), Luxembourg Before The Vulnopticon Conference - Registration

CVE-2025-40342 (GCVE-0-2025-40342)

Vulnerability from cvelistv5 – Published: 2025-12-09 04:09 – Updated: 2026-08-05 12:09
VLAI
Title
nvme-fc: use lock accessing port_state and rport state
Summary
In the Linux kernel, the following vulnerability has been resolved: nvme-fc: use lock accessing port_state and rport state nvme_fc_unregister_remote removes the remote port on a lport object at any point in time when there is no active association. This races with with the reconnect logic, because nvme_fc_create_association is not taking a lock to check the port_state and atomically increase the active count on the rport.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: e399441de9115cd472b8ace6c517708273ca7997 , < de3d91af47bc015031e7721b100a29989f6498a5 (git)
Affected: e399441de9115cd472b8ace6c517708273ca7997 , < e8cde03de8674b05f2c5e0870729049eba517800 (git)
Affected: e399441de9115cd472b8ace6c517708273ca7997 , < 4253e0a4546138a2bf9cb6acf66b32fee677fc7c (git)
Affected: e399441de9115cd472b8ace6c517708273ca7997 , < 25f4bf1f7979a7871974fd36c79d69ff1cf4b446 (git)
Affected: e399441de9115cd472b8ace6c517708273ca7997 , < 9950af4303942081dc8c7a5fdc3688c17c7eb6c0 (git)
Affected: e399441de9115cd472b8ace6c517708273ca7997 , < a2f7fa75c4a2a07328fa22ccbef461db76790b55 (git)
Affected: e399441de9115cd472b8ace6c517708273ca7997 , < 891cdbb162ccdb079cd5228ae43bdeebce8597ad (git)
guessed Create a notification for this product.
Linux Linux Affected: 4.10
Unaffected: 0 , < 4.10 (semver)
Unaffected: 5.10.247 , ≤ 5.10.* (semver)
Unaffected: 5.15.197 , ≤ 5.15.* (semver)
Unaffected: 6.1.159 , ≤ 6.1.* (semver)
Unaffected: 6.6.117 , ≤ 6.6.* (semver)
Unaffected: 6.12.58 , ≤ 6.12.* (semver)
Unaffected: 6.17.8 , ≤ 6.17.* (semver)
Unaffected: 6.18 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/nvme/host/fc.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "de3d91af47bc015031e7721b100a29989f6498a5",
              "status": "affected",
              "version": "e399441de9115cd472b8ace6c517708273ca7997",
              "versionType": "git"
            },
            {
              "lessThan": "e8cde03de8674b05f2c5e0870729049eba517800",
              "status": "affected",
              "version": "e399441de9115cd472b8ace6c517708273ca7997",
              "versionType": "git"
            },
            {
              "lessThan": "4253e0a4546138a2bf9cb6acf66b32fee677fc7c",
              "status": "affected",
              "version": "e399441de9115cd472b8ace6c517708273ca7997",
              "versionType": "git"
            },
            {
              "lessThan": "25f4bf1f7979a7871974fd36c79d69ff1cf4b446",
              "status": "affected",
              "version": "e399441de9115cd472b8ace6c517708273ca7997",
              "versionType": "git"
            },
            {
              "lessThan": "9950af4303942081dc8c7a5fdc3688c17c7eb6c0",
              "status": "affected",
              "version": "e399441de9115cd472b8ace6c517708273ca7997",
              "versionType": "git"
            },
            {
              "lessThan": "a2f7fa75c4a2a07328fa22ccbef461db76790b55",
              "status": "affected",
              "version": "e399441de9115cd472b8ace6c517708273ca7997",
              "versionType": "git"
            },
            {
              "lessThan": "891cdbb162ccdb079cd5228ae43bdeebce8597ad",
              "status": "affected",
              "version": "e399441de9115cd472b8ace6c517708273ca7997",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/nvme/host/fc.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "4.10"
            },
            {
              "lessThan": "4.10",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.10.*",
              "status": "unaffected",
              "version": "5.10.247",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.197",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.159",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.117",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.58",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.17.*",
              "status": "unaffected",
              "version": "6.17.8",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.18",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.10.247",
                  "versionStartIncluding": "4.10",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.197",
                  "versionStartIncluding": "4.10",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.159",
                  "versionStartIncluding": "4.10",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.117",
                  "versionStartIncluding": "4.10",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.58",
                  "versionStartIncluding": "4.10",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.17.8",
                  "versionStartIncluding": "4.10",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18",
                  "versionStartIncluding": "4.10",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnvme-fc: use lock accessing port_state and rport state\n\nnvme_fc_unregister_remote removes the remote port on a lport object at\nany point in time when there is no active association. This races with\nwith the reconnect logic, because nvme_fc_create_association is not\ntaking a lock to check the port_state and atomically increase the\nactive count on the rport."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 8.8,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:A - Both halves of the race are driven by a remote NVMe-FC peer over the Fibre Channel fabric \u2014 target logout/RSCN triggers `nvme_fc_unregister_remoteport()` while association failure triggers the host\u0027s reconnect worker \u2014 so no host access is needed, but FC/FCoE is a limited, non-routable storage network requiring the attacker to be attached to the same fabric.\nAC:L - The attacker controls both sides of the race and can repeat login/logout plus association-failure cycles indefinitely, and the host\u0027s reconnect logic re-enters `nvme_fc_create_association()` automatically on every cycle, so the window is hit reliably given enough iterations.\nPR:N - FC-NVMe performs no peer authentication \u2014 fabric zoning is the only access control \u2014 so a rogue or compromised port on the SAN needs no credentials or account on the victim host to drive the port-state transitions.\nUI:N - The reconnect path runs entirely in kernel workqueue context (`nvme_fc_connect_ctrl_work`) in response to fabric events; no administrator or user action on the victim is required.\nS:U - The corruption is confined to kernel objects owned by the nvme-fc transport and the FC HBA driver within the same security authority; no VM, IOMMU, or sandbox boundary is crossed.\nC:H - The double `remoteport_delete()` causes a refcount underflow and premature free of the LLDD node structure (lpfc `ndlp`, qla2xxx `fcport`) while the transport continues to dereference it, and such a use-after-free on a heap object gives an attacker able to groom the slab an arbitrary kernel read primitive.\nI:H - The same use-after-free/double-put lets a reclaimed allocation be written through stale transport pointers and function-pointer-bearing structures (`lport-\u003eops`, `rport-\u003endlp`), which is exploitable for arbitrary write and control-flow hijack.\nA:H - Even unweaponized, the double free and continued use of a torn-down remote port reliably produce kref underflow warnings, KASAN use-after-free splats, and kernel panics, taking down storage-attached hosts."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T12:09:44.878Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/de3d91af47bc015031e7721b100a29989f6498a5"
        },
        {
          "url": "https://git.kernel.org/stable/c/e8cde03de8674b05f2c5e0870729049eba517800"
        },
        {
          "url": "https://git.kernel.org/stable/c/4253e0a4546138a2bf9cb6acf66b32fee677fc7c"
        },
        {
          "url": "https://git.kernel.org/stable/c/25f4bf1f7979a7871974fd36c79d69ff1cf4b446"
        },
        {
          "url": "https://git.kernel.org/stable/c/9950af4303942081dc8c7a5fdc3688c17c7eb6c0"
        },
        {
          "url": "https://git.kernel.org/stable/c/a2f7fa75c4a2a07328fa22ccbef461db76790b55"
        },
        {
          "url": "https://git.kernel.org/stable/c/891cdbb162ccdb079cd5228ae43bdeebce8597ad"
        }
      ],
      "title": "nvme-fc: use lock accessing port_state and rport state",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2025-40342",
    "datePublished": "2025-12-09T04:09:59.673Z",
    "dateReserved": "2025-04-16T07:20:57.187Z",
    "dateUpdated": "2026-08-05T12:09:44.878Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2025-40342",
      "date": "2026-09-15",
      "epss": "0.00366",
      "percentile": "0.30042"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2025-40342\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2025-12-09T16:17:44.517\",\"lastModified\":\"2026-07-30T06:24:30.307\",\"vulnStatus\":\"Deferred\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nnvme-fc: use lock accessing port_state and rport state\\n\\nnvme_fc_unregister_remote removes the remote port on a lport object at\\nany point in time when there is no active association. This races with\\nwith the reconnect logic, because nvme_fc_create_association is not\\ntaking a lock to check the port_state and atomically increase the\\nactive count on the rport.\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"drivers/nvme/host/fc.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"e399441de9115cd472b8ace6c517708273ca7997\",\"lessThan\":\"de3d91af47bc015031e7721b100a29989f6498a5\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"e399441de9115cd472b8ace6c517708273ca7997\",\"lessThan\":\"e8cde03de8674b05f2c5e0870729049eba517800\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"e399441de9115cd472b8ace6c517708273ca7997\",\"lessThan\":\"4253e0a4546138a2bf9cb6acf66b32fee677fc7c\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"e399441de9115cd472b8ace6c517708273ca7997\",\"lessThan\":\"25f4bf1f7979a7871974fd36c79d69ff1cf4b446\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"e399441de9115cd472b8ace6c517708273ca7997\",\"lessThan\":\"9950af4303942081dc8c7a5fdc3688c17c7eb6c0\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"e399441de9115cd472b8ace6c517708273ca7997\",\"lessThan\":\"a2f7fa75c4a2a07328fa22ccbef461db76790b55\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"e399441de9115cd472b8ace6c517708273ca7997\",\"lessThan\":\"891cdbb162ccdb079cd5228ae43bdeebce8597ad\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"drivers/nvme/host/fc.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"4.10\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"4.10\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"5.10.247\",\"lessThanOrEqual\":\"5.10.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"5.15.197\",\"lessThanOrEqual\":\"5.15.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.1.159\",\"lessThanOrEqual\":\"6.1.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.6.117\",\"lessThanOrEqual\":\"6.6.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.12.58\",\"lessThanOrEqual\":\"6.12.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.17.8\",\"lessThanOrEqual\":\"6.17.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.18\",\"lessThanOrEqual\":\"*\",\"versionType\":\"original_commit_for_fix\",\"status\":\"unaffected\"}]}]}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H\",\"baseScore\":8.8,\"baseSeverity\":\"HIGH\",\"attackVector\":\"ADJACENT_NETWORK\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"NONE\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":2.8,\"impactScore\":5.9}]},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/25f4bf1f7979a7871974fd36c79d69ff1cf4b446\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/4253e0a4546138a2bf9cb6acf66b32fee677fc7c\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/891cdbb162ccdb079cd5228ae43bdeebce8597ad\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/9950af4303942081dc8c7a5fdc3688c17c7eb6c0\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/a2f7fa75c4a2a07328fa22ccbef461db76790b55\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/de3d91af47bc015031e7721b100a29989f6498a5\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/e8cde03de8674b05f2c5e0870729049eba517800\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}",
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2026-07-30T08:43:20+00:00",
      "cve": "CVE-2025-40342",
      "id": "CVE-2025-40342",
      "initial_release_date": "2025-12-09T00:00:00+00:00",
      "product_status:known_affected": "260",
      "product_status:known_not_affected": "14",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: nvme-fc: use lock accessing port_state and rport state",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2025/cve-2025-40342.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "moderate",
      "current_release_date": "2026-08-29T01:14:38Z",
      "cve": "CVE-2025-40342",
      "id": "CVE-2025-40342",
      "initial_release_date": "2025-12-10T00:26:23Z",
      "product_status:first_fixed": "2",
      "product_status:known_affected": "735",
      "product_status:known_not_affected": "34",
      "product_status:recommended": "421",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2025-40342",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2025-40342.json",
      "version": "55"
    }
  }
}



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…

Detection rules are retrieved from Rulezet.

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…