CVE-2026-74396 (GCVE-0-2026-74396)

Vulnerability from cvelistv5 – Published: 2026-08-15 05:59 – Updated: 2026-08-17 05:46
VLAI
Title
RDMA/mlx5: Fix UMR XLT cleanup on ODP populate failure
Summary
In the Linux kernel, the following vulnerability has been resolved: RDMA/mlx5: Fix UMR XLT cleanup on ODP populate failure mlx5r_umr_update_xlt() allocates and DMA maps an XLT buffer with mlx5r_umr_create_xlt(). The buffer is released by the common cleanup path through mlx5r_umr_unmap_free_xlt(). After mlx5_odp_populate_xlt() became fallible, its error path returned directly and skipped that cleanup. This leaks the XLT DMA mapping and buffer. If the emergency XLT page was used, it also leaves xlt_emergency_page_mutex locked. Break out of the loop so execution falls through the existing cleanup path.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 1efe8c0670d6a6883faa09c9abc746c741f5664a , < ffa85a2c197935ace6f1634ad9eb0a44bc615670 (git)
Affected: 1efe8c0670d6a6883faa09c9abc746c741f5664a , < 9619909d4869afe720904c6888a289b9ac3055b8 (git)
Affected: 1efe8c0670d6a6883faa09c9abc746c741f5664a , < 1eae35b37923cb71b0cb5136d00671440d488b9f (git)
guessed Create a notification for this product.
Linux Linux Affected: 6.16
Unaffected: 0 , < 6.16 (semver)
Unaffected: 6.18.40 , ≤ 6.18.* (semver)
Unaffected: 7.1.5 , ≤ 7.1.* (semver)
Unaffected: 7.2 , ≤ * (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/hw/mlx5/umr.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "ffa85a2c197935ace6f1634ad9eb0a44bc615670",
              "status": "affected",
              "version": "1efe8c0670d6a6883faa09c9abc746c741f5664a",
              "versionType": "git"
            },
            {
              "lessThan": "9619909d4869afe720904c6888a289b9ac3055b8",
              "status": "affected",
              "version": "1efe8c0670d6a6883faa09c9abc746c741f5664a",
              "versionType": "git"
            },
            {
              "lessThan": "1eae35b37923cb71b0cb5136d00671440d488b9f",
              "status": "affected",
              "version": "1efe8c0670d6a6883faa09c9abc746c741f5664a",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/infiniband/hw/mlx5/umr.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.16"
            },
            {
              "lessThan": "6.16",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.40",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.1.*",
              "status": "unaffected",
              "version": "7.1.5",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.2",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.40",
                  "versionStartIncluding": "6.16",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.1.5",
                  "versionStartIncluding": "6.16",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2",
                  "versionStartIncluding": "6.16",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/mlx5: Fix UMR XLT cleanup on ODP populate failure\n\nmlx5r_umr_update_xlt() allocates and DMA maps an XLT buffer with\nmlx5r_umr_create_xlt(). The buffer is released by the common cleanup path\nthrough mlx5r_umr_unmap_free_xlt().\n\nAfter mlx5_odp_populate_xlt() became fallible, its error path returned\ndirectly and skipped that cleanup. This leaks the XLT DMA mapping and\nbuffer. If the emergency XLT page was used, it also leaves\nxlt_emergency_page_mutex locked.\n\nBreak out of the loop so execution falls through the existing cleanup path."
        }
      ],
      "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 - Remote RDMA peers trigger mlx5 ODP hardware page faults over RoCE/InfiniBand (mlx5_ib_mr_rdma_pfault_handler \u2192 pagefault_real_mr \u2192 mlx5r_umr_update_xlt), reaching the buggy cleanup on mlx5 AI/HPC/cloud servers without local syscalls.\nAC:L - An attacker can repeatedly drive ODP page faults, exhaust memory to force the emergency XLT page path, and retry until mlx5_odp_populate_xlt()/hmm_dma_map_pfn() fails; no uncontrollable race or memory layout is required.\nPR:N - The RDMA responder page-fault path executes in kernel workqueues on packets from a connected remote peer and performs no Linux capability or credential check before calling mlx5r_umr_update_xlt().\nUI:N - Exploitation requires only attacker-generated RDMA traffic against exported ODP memory regions once a queue pair exists; no additional victim action beyond normal RDMA service operation is needed.\nS:U - The DMA mapping leak and permanent xlt_emergency_page_mutex lock affect mlx5 driver resources within the same host kernel security authority; there is no VM escape or IOMMU-boundary bypass.\nC:N - The bug skips unmap/free of an XLT translation buffer; it does not corrupt memory, dereference freed objects, or provide an arbitrary kernel read primitive.\nI:N - No out-of-bounds write, use-after-free, or control-flow corruption occurs; the defect only leaks resources rather than enabling arbitrary data modification.\nA:H - Each failure leaks a DMA mapping and buffer, and on the emergency-page path permanently locks xlt_emergency_page_mutex, deadlocking subsequent UMR XLT updates and disabling ODP/RDMA on the mlx5 device."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-17T05:46:40.931Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/ffa85a2c197935ace6f1634ad9eb0a44bc615670"
        },
        {
          "url": "https://git.kernel.org/stable/c/9619909d4869afe720904c6888a289b9ac3055b8"
        },
        {
          "url": "https://git.kernel.org/stable/c/1eae35b37923cb71b0cb5136d00671440d488b9f"
        }
      ],
      "title": "RDMA/mlx5: Fix UMR XLT cleanup on ODP populate failure",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-74396",
    "datePublished": "2026-08-15T05:59:08.694Z",
    "dateReserved": "2026-08-15T05:44:03.891Z",
    "dateUpdated": "2026-08-17T05:46:40.931Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-74396",
      "date": "2026-09-21",
      "epss": "0.00512",
      "percentile": "0.42518"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "drivers/infiniband/hw/mlx5/umr.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "ffa85a2c197935ace6f1634ad9eb0a44bc615670",
                    "status": "affected",
                    "version": "1efe8c0670d6a6883faa09c9abc746c741f5664a",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "9619909d4869afe720904c6888a289b9ac3055b8",
                    "status": "affected",
                    "version": "1efe8c0670d6a6883faa09c9abc746c741f5664a",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "1eae35b37923cb71b0cb5136d00671440d488b9f",
                    "status": "affected",
                    "version": "1efe8c0670d6a6883faa09c9abc746c741f5664a",
                    "versionType": "git"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "drivers/infiniband/hw/mlx5/umr.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "6.16"
                  },
                  {
                    "lessThan": "6.16",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.18.*",
                    "status": "unaffected",
                    "version": "6.18.40",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "7.1.*",
                    "status": "unaffected",
                    "version": "7.1.5",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "*",
                    "status": "unaffected",
                    "version": "7.2",
                    "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\nRDMA/mlx5: Fix UMR XLT cleanup on ODP populate failure\n\nmlx5r_umr_update_xlt() allocates and DMA maps an XLT buffer with\nmlx5r_umr_create_xlt(). The buffer is released by the common cleanup path\nthrough mlx5r_umr_unmap_free_xlt().\n\nAfter mlx5_odp_populate_xlt() became fallible, its error path returned\ndirectly and skipped that cleanup. This leaks the XLT DMA mapping and\nbuffer. If the emergency XLT page was used, it also leaves\nxlt_emergency_page_mutex locked.\n\nBreak out of the loop so execution falls through the existing cleanup path."
          }
        ],
        "id": "CVE-2026-74396",
        "lastModified": "2026-08-17T06:19:34.683",
        "metrics": {
          "cvssMetricV31": [
            {
              "cvssData": {
                "attackComplexity": "LOW",
                "attackVector": "NETWORK",
                "availabilityImpact": "HIGH",
                "baseScore": 7.5,
                "baseSeverity": "HIGH",
                "confidentialityImpact": "NONE",
                "integrityImpact": "NONE",
                "privilegesRequired": "NONE",
                "scope": "UNCHANGED",
                "userInteraction": "NONE",
                "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
                "version": "3.1"
              },
              "exploitabilityScore": 3.9,
              "impactScore": 3.6,
              "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
              "type": "Secondary"
            }
          ]
        },
        "published": "2026-08-15T06:22:41.600",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/1eae35b37923cb71b0cb5136d00671440d488b9f"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/9619909d4869afe720904c6888a289b9ac3055b8"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/ffa85a2c197935ace6f1634ad9eb0a44bc615670"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Received"
      }
    },
    "redhat_vex": {
      "aggregate_severity": "Low",
      "current_release_date": "2026-08-20T22:20:12+00:00",
      "cve": "CVE-2026-74396",
      "id": "CVE-2026-74396",
      "initial_release_date": "2026-08-15T00:00:00+00:00",
      "product_status:known_affected": "184",
      "product_status:known_not_affected": "90",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: RDMA/mlx5: Fix UMR XLT cleanup on ODP populate failure",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-74396.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "moderate",
      "current_release_date": "2026-09-02T11:44:14Z",
      "cve": "CVE-2026-74396",
      "id": "CVE-2026-74396",
      "initial_release_date": "2026-09-02T11:44:14Z",
      "product_status:known_not_affected": "362",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2026-74396",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2026-74396.json",
      "version": "2"
    }
  }
}



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…