CVE-2025-38238 (GCVE-0-2025-38238)

Vulnerability from cvelistv5 – Published: 2025-07-09 10:42 – Updated: 2026-08-05 12:00
VLAI
Title
scsi: fnic: Fix crash in fnic_wq_cmpl_handler when FDMI times out
Summary
In the Linux kernel, the following vulnerability has been resolved: scsi: fnic: Fix crash in fnic_wq_cmpl_handler when FDMI times out When both the RHBA and RPA FDMI requests time out, fnic reuses a frame to send ABTS for each of them. On send completion, this causes an attempt to free the same frame twice that leads to a crash. Fix crash by allocating separate frames for RHBA and RPA, and modify ABTS logic accordingly. Tested by checking MDS for FDMI information. Tested by using instrumented driver to: - Drop PLOGI response - Drop RHBA response - Drop RPA response - Drop RHBA and RPA response - Drop PLOGI response + ABTS response - Drop RHBA response + ABTS response - Drop RPA response + ABTS response - Drop RHBA and RPA response + ABTS response for both of them
Assigner
Impacted products
Vendor Product Version
Linux Linux Affected: 09c1e6ab4ab2a107d96f119950dc330e446dc2b0 , < 09679e9abedfbc5a2590759a1a7893c1c26e6044 (git)
Affected: 09c1e6ab4ab2a107d96f119950dc330e446dc2b0 , < a35b29bdedb4d2ae3160d4d6684a6f1ecd9ca7c2 (git)
Create a notification for this product.
Linux Linux Affected: 6.14
Unaffected: 0 , < 6.14 (semver)
Unaffected: 6.15.5 , ≤ 6.15.* (semver)
Unaffected: 6.16 , ≤ * (original_commit_for_fix)
Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/scsi/fnic/fdls_disc.c",
            "drivers/scsi/fnic/fnic.h",
            "drivers/scsi/fnic/fnic_fdls.h"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "09679e9abedfbc5a2590759a1a7893c1c26e6044",
              "status": "affected",
              "version": "09c1e6ab4ab2a107d96f119950dc330e446dc2b0",
              "versionType": "git"
            },
            {
              "lessThan": "a35b29bdedb4d2ae3160d4d6684a6f1ecd9ca7c2",
              "status": "affected",
              "version": "09c1e6ab4ab2a107d96f119950dc330e446dc2b0",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/scsi/fnic/fdls_disc.c",
            "drivers/scsi/fnic/fnic.h",
            "drivers/scsi/fnic/fnic_fdls.h"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.14"
            },
            {
              "lessThan": "6.14",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.15.*",
              "status": "unaffected",
              "version": "6.15.5",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.16",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.15.5",
                  "versionStartIncluding": "6.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.16",
                  "versionStartIncluding": "6.14",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nscsi: fnic: Fix crash in fnic_wq_cmpl_handler when FDMI times out\n\nWhen both the RHBA and RPA FDMI requests time out, fnic reuses a frame to\nsend ABTS for each of them. On send completion, this causes an attempt to\nfree the same frame twice that leads to a crash.\n\nFix crash by allocating separate frames for RHBA and RPA, and modify ABTS\nlogic accordingly.\n\nTested by checking MDS for FDMI information.\n\nTested by using instrumented driver to:\n\n - Drop PLOGI response\n - Drop RHBA response\n - Drop RPA response\n - Drop RHBA and RPA response\n - Drop PLOGI response + ABTS response\n - Drop RHBA response + ABTS response\n - Drop RPA response + ABTS response\n - Drop RHBA and RPA response + ABTS response for both of them"
        }
      ],
      "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 - The trigger is entirely controlled by the FCoE fabric peer \u2014 withholding both the FDMI RHBA and RPA responses after accepting the FDMI PLOGI \u2014 and FCoE/FIP is a non-routable layer-2 protocol confined to the shared FCoE VLAN/storage fabric, so the attacker must be on the same broadcast domain (or be the unauthenticated FCF, which FIP allows spoofing).\nAC:L - No race and no memory-layout precondition: the attacker simply does not answer the two FDMI registration requests, which deterministically drives fdls_fdmi_timer_callback() into fdls_send_fdmi_abts() with both REG_HBA_PENDING and RPA_PENDING set, sending the one allocated frame twice.\nPR:N - The attacker is a remote fabric peer with no account or privileges on the target host; the FDMI exchange is initiated automatically by the driver during fabric login and requires no local access whatsoever.\nUI:N - FDMI is enabled by default (fnic_fdmi_support = 1) and fnic_fdls_start_plogi() launches the FDMI sequence automatically on fabric PLOGI/link-up; no administrator or user action is needed.\nS:U - The double free corrupts the kernel slab allocator within the same security authority as the vulnerable driver; no VM, IOMMU, or sandbox boundary is crossed.\nC:H - The slab double-free hands the same 2112-byte object to two independent consumers, letting one exchange\u0027s kernel data be transmitted onto the fabric to the attacker, and freelist corruption on a mergeable cache is a standard stepping stone to arbitrary kernel memory disclosure.\nI:H - A double kmem_cache_free() of a live object is the canonical heap-corruption primitive \u2014 freelist poisoning and overlapping allocations yield a controlled write, compounded by the double dma_unmap_single() and the OX_ID write into an already-DMA-mapped buffer.\nA:H - The fix commit exists precisely because the second free crashes the kernel in fnic_wq_cmpl_handler; the resulting allocator corruption reliably panics the machine and takes the FC storage path down with it."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T12:00:36.529Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/09679e9abedfbc5a2590759a1a7893c1c26e6044"
        },
        {
          "url": "https://git.kernel.org/stable/c/a35b29bdedb4d2ae3160d4d6684a6f1ecd9ca7c2"
        }
      ],
      "title": "scsi: fnic: Fix crash in fnic_wq_cmpl_handler when FDMI times out",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2025-38238",
    "datePublished": "2025-07-09T10:42:23.538Z",
    "dateReserved": "2025-04-16T04:51:23.996Z",
    "dateUpdated": "2026-08-05T12:00:36.529Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2025-38238",
      "date": "2026-08-06",
      "epss": "0.00184",
      "percentile": "0.08219"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2025-38238\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2025-07-09T11:15:25.080\",\"lastModified\":\"2026-07-30T06:23:03.210\",\"vulnStatus\":\"Modified\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nscsi: fnic: Fix crash in fnic_wq_cmpl_handler when FDMI times out\\n\\nWhen both the RHBA and RPA FDMI requests time out, fnic reuses a frame to\\nsend ABTS for each of them. On send completion, this causes an attempt to\\nfree the same frame twice that leads to a crash.\\n\\nFix crash by allocating separate frames for RHBA and RPA, and modify ABTS\\nlogic accordingly.\\n\\nTested by checking MDS for FDMI information.\\n\\nTested by using instrumented driver to:\\n\\n - Drop PLOGI response\\n - Drop RHBA response\\n - Drop RPA response\\n - Drop RHBA and RPA response\\n - Drop PLOGI response + ABTS response\\n - Drop RHBA response + ABTS response\\n - Drop RPA response + ABTS response\\n - Drop RHBA and RPA response + ABTS response for both of them\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: scsi: fnic: Se corrige el fallo en fnic_wq_cmpl_handler cuando se agota el tiempo de espera de FDMI. Cuando se agota el tiempo de espera de las solicitudes FDMI de RHBA y RPA, fnic reutiliza una trama para enviar ABTS para cada una de ellas. Al completarse el env\u00edo, esto provoca un intento de liberar la misma trama dos veces, lo que provoca un fallo. Se corrige el fallo asignando tramas separadas para RHBA y RPA y modificando la l\u00f3gica de ABTS seg\u00fan corresponda. Se prob\u00f3 verificando MDS para obtener informaci\u00f3n de FDMI. Se prob\u00f3 utilizando un controlador instrumentado para: - Descartar la respuesta PLOGI - Descartar la respuesta RHBA - Descartar la respuesta RPA - Descartar la respuesta RHBA y RPA - Descartar la respuesta PLOGI + respuesta ABTS - Descartar la respuesta RHBA + respuesta ABTS - Descartar la respuesta RPA + respuesta ABTS - Descartar la respuesta RHBA y RPA + respuesta ABTS para ambas.\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"drivers/scsi/fnic/fdls_disc.c\",\"drivers/scsi/fnic/fnic.h\",\"drivers/scsi/fnic/fnic_fdls.h\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"09c1e6ab4ab2a107d96f119950dc330e446dc2b0\",\"lessThan\":\"09679e9abedfbc5a2590759a1a7893c1c26e6044\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"09c1e6ab4ab2a107d96f119950dc330e446dc2b0\",\"lessThan\":\"a35b29bdedb4d2ae3160d4d6684a6f1ecd9ca7c2\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"drivers/scsi/fnic/fdls_disc.c\",\"drivers/scsi/fnic/fnic.h\",\"drivers/scsi/fnic/fnic_fdls.h\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"6.14\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"6.14\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.15.5\",\"lessThanOrEqual\":\"6.15.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.16\",\"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},{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H\",\"baseScore\":5.5,\"baseSeverity\":\"MEDIUM\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"NONE\",\"integrityImpact\":\"NONE\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":3.6}]},\"weaknesses\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"description\":[{\"lang\":\"en\",\"value\":\"NVD-CWE-noinfo\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.14\",\"versionEndExcluding\":\"6.15.5\",\"matchCriteriaId\":\"B778A5DA-B42B-4637-8580-7B4583B0061B\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.16:rc1:*:*:*:*:*:*\",\"matchCriteriaId\":\"6D4894DB-CCFE-4602-B1BF-3960B2E19A01\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.16:rc2:*:*:*:*:*:*\",\"matchCriteriaId\":\"09709862-E348-4378-8632-5A7813EDDC86\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.16:rc3:*:*:*:*:*:*\",\"matchCriteriaId\":\"415BF58A-8197-43F5-B3D7-D1D63057A26E\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/09679e9abedfbc5a2590759a1a7893c1c26e6044\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/a35b29bdedb4d2ae3160d4d6684a6f1ecd9ca7c2\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]}]}}",
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2026-07-30T09:17:24+00:00",
      "cve": "CVE-2025-38238",
      "id": "CVE-2025-38238",
      "initial_release_date": "2025-07-09T00:00:00+00:00",
      "product_status:known_affected": "184",
      "product_status:known_not_affected": "90",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: scsi: fnic: Fix crash in fnic_wq_cmpl_handler when FDMI times out",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2025/cve-2025-38238.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "moderate",
      "current_release_date": "2026-07-31T01:11:48Z",
      "cve": "CVE-2025-38238",
      "id": "CVE-2025-38238",
      "initial_release_date": "2025-07-09T23:23:19Z",
      "product_status:known_affected": "424",
      "product_status:known_not_affected": "359",
      "product_status:recommended": "111",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2025-38238",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2025-38238.json",
      "version": "16"
    }
  }
}



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…

Loading…