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

CVE-2025-38287 (GCVE-0-2025-38287)

Vulnerability from cvelistv5 – Published: 2025-07-10 07:42 – Updated: 2026-08-05 12:00
VLAI
Title
IB/cm: Drop lockdep assert and WARN when freeing old msg
Summary
In the Linux kernel, the following vulnerability has been resolved: IB/cm: Drop lockdep assert and WARN when freeing old msg The send completion handler can run after cm_id has advanced to another message. The cm_id lock is not needed in this case, but a recent change re-used cm_free_priv_msg(), which asserts that the lock is held and WARNs if the cm_id's currently outstanding msg is different than the one being freed.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 1e5159219076ddb2e44338c667c83fd1bd43dfef , < fc096a0cd2017cb0aa1e7fb83131410af9283910 (git)
Affected: 1e5159219076ddb2e44338c667c83fd1bd43dfef , < 7590649ee7af381a9d1153143026dec124c5798e (git)
guessed Create a notification for this product.
Linux Linux Affected: 6.13
Unaffected: 0 , < 6.13 (semver)
Unaffected: 6.15.3 , ≤ 6.15.* (semver)
Unaffected: 6.16 , ≤ * (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/infiniband/core/cm.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "fc096a0cd2017cb0aa1e7fb83131410af9283910",
              "status": "affected",
              "version": "1e5159219076ddb2e44338c667c83fd1bd43dfef",
              "versionType": "git"
            },
            {
              "lessThan": "7590649ee7af381a9d1153143026dec124c5798e",
              "status": "affected",
              "version": "1e5159219076ddb2e44338c667c83fd1bd43dfef",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/infiniband/core/cm.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.13"
            },
            {
              "lessThan": "6.13",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.15.*",
              "status": "unaffected",
              "version": "6.15.3",
              "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.3",
                  "versionStartIncluding": "6.13",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.16",
                  "versionStartIncluding": "6.13",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nIB/cm: Drop lockdep assert and WARN when freeing old msg\n\nThe send completion handler can run after cm_id has advanced to another\nmessage.  The cm_id lock is not needed in this case, but a recent change\nre-used cm_free_priv_msg(), which asserts that the lock is held and\nWARNs if the cm_id\u0027s currently outstanding msg is different than the one\nbeing freed."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.5,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:N - The vulnerable path is entered from `cm_send_handler()`, driven by CM MADs received from a remote RDMA peer (RTU/REP/REJ/DREQ/DREP cancel the outstanding private MAD), against in-kernel RDMA listeners such as nvmet-rdma, nfsd/RDMA or SMB Direct. Under RoCEv2 these CM MADs are carried in IP-routable UDP/4791 traffic, so the attacker need not share an L2 segment.\nAC:L - The attacker controls both halves of the race \u2014 the `ib_cancel_mad()` that defers the flush completion (by sending RTU/DREP/REJ) and the subsequent private-MAD allocation (by forcing a disconnect/DREQ) \u2014 and can open many parallel connections to saturate the MAD workqueue and retry indefinitely until the ordering inverts.\nPR:N - IB CM connection establishment (REQ/REP/RTU/DREQ) completes entirely before any ULP-level authentication such as NVMe-oF or SMB, so an unauthenticated peer on the fabric can drive the victim cm_id through the required state transitions.\nUI:N - The state transitions are performed by the kernel CM state machine in response to attacker-supplied MADs and workqueue-deferred send completions; no action by any local user is required.\nS:U - The WARN and lockdep assert fire inside the kernel\u0027s own IB CM code and affect only the kernel\u0027s security authority; no VM, IOMMU or sandbox boundary is crossed.\nC:N - The buggy path frees the message identically to the fixed path \u2014 no out-of-bounds read, no use-after-free, no uninitialized data exposure. The WARN backtrace goes only to dmesg with hashed pointers, which the triggering remote attacker cannot observe.\nI:N - The `WARN_ON()` guard suppresses the erroneous `cm_id_priv-\u003emsg = NULL` store, and the AH destroy, cm_id deref and MAD free are all correct, so no kernel state or memory is corrupted.\nA:H - Each occurrence emits a `WARN_ON()` splat (plus a lockdep splat on PROVE_LOCKING kernels) that taints the kernel and is a full panic on the many hardened deployments running `panic_on_warn=1`; the attacker can trigger it repeatedly at will."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T12:00:59.136Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/fc096a0cd2017cb0aa1e7fb83131410af9283910"
        },
        {
          "url": "https://git.kernel.org/stable/c/7590649ee7af381a9d1153143026dec124c5798e"
        }
      ],
      "title": "IB/cm: Drop lockdep assert and WARN when freeing old msg",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2025-38287",
    "datePublished": "2025-07-10T07:42:04.056Z",
    "dateReserved": "2025-04-16T04:51:24.000Z",
    "dateUpdated": "2026-08-05T12:00:59.136Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2025-38287",
      "date": "2026-09-16",
      "epss": "0.00291",
      "percentile": "0.21731"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2025-38287\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2025-07-10T08:15:27.230\",\"lastModified\":\"2026-07-30T06:23:06.063\",\"vulnStatus\":\"Modified\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nIB/cm: Drop lockdep assert and WARN when freeing old msg\\n\\nThe send completion handler can run after cm_id has advanced to another\\nmessage.  The cm_id lock is not needed in this case, but a recent change\\nre-used cm_free_priv_msg(), which asserts that the lock is held and\\nWARNs if the cm_id\u0027s currently outstanding msg is different than the one\\nbeing freed.\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: IB/cm: Se omite la aserci\u00f3n de lockdep y la advertencia al liberar un mensaje antiguo. El controlador de finalizaci\u00f3n de env\u00edo puede ejecutarse despu\u00e9s de que cm_id haya avanzado a otro mensaje. El bloqueo de cm_id no es necesario en este caso, pero un cambio reciente reutiliz\u00f3 cm_free_priv_msg(), que confirma que el bloqueo se mantiene y emite una advertencia si el mensaje pendiente de cm_id es diferente del que se est\u00e1 liberando.\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"drivers/infiniband/core/cm.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"1e5159219076ddb2e44338c667c83fd1bd43dfef\",\"lessThan\":\"fc096a0cd2017cb0aa1e7fb83131410af9283910\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"1e5159219076ddb2e44338c667c83fd1bd43dfef\",\"lessThan\":\"7590649ee7af381a9d1153143026dec124c5798e\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"drivers/infiniband/core/cm.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"6.13\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"6.13\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.15.3\",\"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:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H\",\"baseScore\":7.5,\"baseSeverity\":\"HIGH\",\"attackVector\":\"NETWORK\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"NONE\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"NONE\",\"integrityImpact\":\"NONE\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":3.9,\"impactScore\":3.6},{\"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.13\",\"versionEndExcluding\":\"6.15.3\",\"matchCriteriaId\":\"0541C761-BD5E-4C1A-8432-83B375D7EB92\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/7590649ee7af381a9d1153143026dec124c5798e\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/fc096a0cd2017cb0aa1e7fb83131410af9283910\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]}]}}",
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2026-08-14T18:43:46+00:00",
      "cve": "CVE-2025-38287",
      "id": "CVE-2025-38287",
      "initial_release_date": "2025-07-10T00:00:00+00:00",
      "product_status:known_affected": "198",
      "product_status:known_not_affected": "76",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: Kernel: Denial of Service in IB/cm component due to improper message handling",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2025/cve-2025-38287.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "moderate",
      "current_release_date": "2026-08-30T01:55:49Z",
      "cve": "CVE-2025-38287",
      "id": "CVE-2025-38287",
      "initial_release_date": "2025-07-10T23:23:19Z",
      "product_status:first_fixed": "2",
      "product_status:known_affected": "394",
      "product_status:known_not_affected": "492",
      "product_status:recommended": "247",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2025-38287",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2025-38287.json",
      "version": "39"
    }
  }
}



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…