CVE-2026-74712 (GCVE-0-2026-74712)

Vulnerability from cvelistv5 – Published: 2026-08-22 15:33 – Updated: 2026-08-25 05:41
VLAI
Title
vdpa/mlx5: Fix buffer length in create_direct_keys()
Summary
In the Linux kernel, the following vulnerability has been resolved: vdpa/mlx5: Fix buffer length in create_direct_keys() We have seen in our CI the following KASAN message: BUG: KASAN: slab-out-of-bounds in cmd_exec+0x550/0xca0 [mlx5_core] Read of size 272 at addr 0000000176795020 by task qemu-system-s39/82764 [...] [<000011388ab3a7a0>] cmd_exec+0x550/0xca0 [mlx5_core] [<000011388ab3b61c>] mlx5_cmd_exec_cb+0x25c/0x4f0 [mlx5_core] [<000011388b21e82e>] mlx5_vdpa_exec_async_cmds+0x22e/0x5e0 [mlx5_vdpa] [<000011388b21fd44>] create_direct_keys+0x954/0xef0 [mlx5_vdpa] [...] The buggy address is located 4128 bytes inside of allocated 4384-byte region [0000000176794000, 0000000176795120) So in essence we read 16 bytes beyond 4384-byte allocation. create_direct_keys calculates the pointer and length for in and out buffers. The size calculation for in includes the entire structure size (out + in + mtt[]) but the pointer passed to cmd_exec points only to the 'in' field, skipping the 'out' field. This causes mlx5_copy_to_msg() to read beyond the allocated buffer by sizeof(out) bytes when copying command data. Properly calculate the input size to match the pointer and allocation size.
Assigner
Linux CNA under the mitre root
CNA scorecard D 53/100 over 6666 records in the last 180 days details
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 0071b138d44af4296bf871e6624369ce697b4b15 , < ec3bb289cf19d526224117d5d450a5fd9cbd5ab2 (git)
Affected: 0071b138d44af4296bf871e6624369ce697b4b15 , < cde8931a25392670dd59a0acfcab87a830ab66c5 (git)
Affected: 0071b138d44af4296bf871e6624369ce697b4b15 , < 6c8a9f7bc00301e533a5366384f3070a8e7f8430 (git)
Affected: 0071b138d44af4296bf871e6624369ce697b4b15 , < 727e1f569855df83579edbd73dcb4a0723543a12 (git)
guessed Create a notification for this product.
Linux Linux Affected: 6.12
Unaffected: 0 , < 6.12 (semver)
Unaffected: 6.12.104 , ≤ 6.12.* (semver)
Unaffected: 6.18.45 , ≤ 6.18.* (semver)
Unaffected: 7.1.9 , ≤ 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/vdpa/mlx5/core/mr.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "ec3bb289cf19d526224117d5d450a5fd9cbd5ab2",
              "status": "affected",
              "version": "0071b138d44af4296bf871e6624369ce697b4b15",
              "versionType": "git"
            },
            {
              "lessThan": "cde8931a25392670dd59a0acfcab87a830ab66c5",
              "status": "affected",
              "version": "0071b138d44af4296bf871e6624369ce697b4b15",
              "versionType": "git"
            },
            {
              "lessThan": "6c8a9f7bc00301e533a5366384f3070a8e7f8430",
              "status": "affected",
              "version": "0071b138d44af4296bf871e6624369ce697b4b15",
              "versionType": "git"
            },
            {
              "lessThan": "727e1f569855df83579edbd73dcb4a0723543a12",
              "status": "affected",
              "version": "0071b138d44af4296bf871e6624369ce697b4b15",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/vdpa/mlx5/core/mr.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.12"
            },
            {
              "lessThan": "6.12",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.104",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.45",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.1.*",
              "status": "unaffected",
              "version": "7.1.9",
              "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.12.104",
                  "versionStartIncluding": "6.12",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.45",
                  "versionStartIncluding": "6.12",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.1.9",
                  "versionStartIncluding": "6.12",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2",
                  "versionStartIncluding": "6.12",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nvdpa/mlx5: Fix buffer length in create_direct_keys()\n\nWe have seen in our CI the following KASAN message:\nBUG: KASAN: slab-out-of-bounds in cmd_exec+0x550/0xca0 [mlx5_core]\nRead of size 272 at addr 0000000176795020 by task qemu-system-s39/82764\n[...]\n[\u003c000011388ab3a7a0\u003e] cmd_exec+0x550/0xca0 [mlx5_core]\n[\u003c000011388ab3b61c\u003e] mlx5_cmd_exec_cb+0x25c/0x4f0 [mlx5_core]\n[\u003c000011388b21e82e\u003e] mlx5_vdpa_exec_async_cmds+0x22e/0x5e0 [mlx5_vdpa]\n[\u003c000011388b21fd44\u003e] create_direct_keys+0x954/0xef0 [mlx5_vdpa]\n[...]\nThe buggy address is located 4128 bytes inside of\nallocated 4384-byte region [0000000176794000, 0000000176795120)\n\nSo in essence we read 16 bytes beyond 4384-byte allocation.\ncreate_direct_keys calculates the pointer and length for in and out\nbuffers.\nThe size calculation for in includes the entire structure\nsize (out + in + mtt[]) but the pointer passed to cmd_exec points only\nto the \u0027in\u0027 field, skipping the \u0027out\u0027 field.\n\nThis causes mlx5_copy_to_msg() to read beyond the allocated buffer\nby sizeof(out) bytes when copying command data.\n\nProperly calculate the input size to match the pointer and allocation size."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 9.3,
            "baseSeverity": "CRITICAL",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - The bug is reached when host vDPA memory keys are created during IOTLB/set_map handling on /dev/vhost-vdpa (ioctl/write from QEMU/vhost), not from remote network packet processing; worst case is a co-tenant VM guest driving host QEMU virtio memory updates on the same mlx5 vDPA host.\nAC:L - Once mlx5 vDPA user MR setup runs, create_direct_keys() always passes an oversized inlen to mlx5_cmd_exec_cb(), deterministically causing mlx5_copy_to_msg() to read past the slab allocation; no race or victim state is required beyond normal virtio memory mapping.\nPR:N - In cloud mlx5 virtio-vDPA deployments a malicious VM tenant needs no host credentials\u2014normal guest virtio-net bring-up causes QEMU to issue vhost IOTLB updates that invoke mlx5_vdpa_set_map() and create_user_mr() on the host without CAP_NET_ADMIN or root in the host init namespace.\nUI:N - Exploitation requires only automated virtio driver initialization and memory table updates; no additional victim clicks, mounts, or manual actions are needed beyond provisioning a vDPA-backed VM, which is the intended operational path.\nS:C - The vulnerable mlx5 vDPA code runs in the hypervisor host kernel while the practical attacker is a guest VM tenant; successful slab out-of-bounds reads and corrupted firmware commands cross the guest/host virtualization boundary per KVM guest-to-host guidance.\nC:H - Incorrect inlen makes mlx5_copy_to_msg() perform a slab out-of-bounds read (KASAN-reported) of adjacent kernel heap memory, copying leaked bytes into CREATE_MKEY commands and enabling arbitrary kernel information disclosure, not a bounded benign leak.\nI:H - The over-read injects adjacent heap contents into firmware CREATE_MKEY command buffers, corrupting memory-key setup data sent to the mlx5 device; this is exploitable kernel memory corruption that can alter device DMA mappings and enable further control, not a read-only crash.\nA:H - The flaw triggers a KASAN slab-out-of-bounds fault in mlx5_core cmd_exec() during normal MR creation; such heap corruption commonly causes kernel oops/panic and can also destabilize vDPA networking on repeated virtio memory remaps."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-25T05:41:54.897Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/ec3bb289cf19d526224117d5d450a5fd9cbd5ab2"
        },
        {
          "url": "https://git.kernel.org/stable/c/cde8931a25392670dd59a0acfcab87a830ab66c5"
        },
        {
          "url": "https://git.kernel.org/stable/c/6c8a9f7bc00301e533a5366384f3070a8e7f8430"
        },
        {
          "url": "https://git.kernel.org/stable/c/727e1f569855df83579edbd73dcb4a0723543a12"
        }
      ],
      "title": "vdpa/mlx5: Fix buffer length in create_direct_keys()",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-74712",
    "datePublished": "2026-08-22T15:33:08.392Z",
    "dateReserved": "2026-08-15T05:44:03.928Z",
    "dateUpdated": "2026-08-25T05:41:54.897Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-74712",
      "date": "2026-10-16",
      "epss": "0.00142",
      "percentile": "0.03116"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "drivers/vdpa/mlx5/core/mr.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "ec3bb289cf19d526224117d5d450a5fd9cbd5ab2",
                    "status": "affected",
                    "version": "0071b138d44af4296bf871e6624369ce697b4b15",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "cde8931a25392670dd59a0acfcab87a830ab66c5",
                    "status": "affected",
                    "version": "0071b138d44af4296bf871e6624369ce697b4b15",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "6c8a9f7bc00301e533a5366384f3070a8e7f8430",
                    "status": "affected",
                    "version": "0071b138d44af4296bf871e6624369ce697b4b15",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "727e1f569855df83579edbd73dcb4a0723543a12",
                    "status": "affected",
                    "version": "0071b138d44af4296bf871e6624369ce697b4b15",
                    "versionType": "git"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "drivers/vdpa/mlx5/core/mr.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "6.12"
                  },
                  {
                    "lessThan": "6.12",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.12.*",
                    "status": "unaffected",
                    "version": "6.12.104",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.18.*",
                    "status": "unaffected",
                    "version": "6.18.45",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "7.1.*",
                    "status": "unaffected",
                    "version": "7.1.9",
                    "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\nvdpa/mlx5: Fix buffer length in create_direct_keys()\n\nWe have seen in our CI the following KASAN message:\nBUG: KASAN: slab-out-of-bounds in cmd_exec+0x550/0xca0 [mlx5_core]\nRead of size 272 at addr 0000000176795020 by task qemu-system-s39/82764\n[...]\n[\u003c000011388ab3a7a0\u003e] cmd_exec+0x550/0xca0 [mlx5_core]\n[\u003c000011388ab3b61c\u003e] mlx5_cmd_exec_cb+0x25c/0x4f0 [mlx5_core]\n[\u003c000011388b21e82e\u003e] mlx5_vdpa_exec_async_cmds+0x22e/0x5e0 [mlx5_vdpa]\n[\u003c000011388b21fd44\u003e] create_direct_keys+0x954/0xef0 [mlx5_vdpa]\n[...]\nThe buggy address is located 4128 bytes inside of\nallocated 4384-byte region [0000000176794000, 0000000176795120)\n\nSo in essence we read 16 bytes beyond 4384-byte allocation.\ncreate_direct_keys calculates the pointer and length for in and out\nbuffers.\nThe size calculation for in includes the entire structure\nsize (out + in + mtt[]) but the pointer passed to cmd_exec points only\nto the \u0027in\u0027 field, skipping the \u0027out\u0027 field.\n\nThis causes mlx5_copy_to_msg() to read beyond the allocated buffer\nby sizeof(out) bytes when copying command data.\n\nProperly calculate the input size to match the pointer and allocation size."
          },
          {
            "lang": "es",
            "value": "En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:\n\nvdpa/mlx5: Correcci\u00f3n de la longitud del b\u00fafer en create_direct_keys()\n\nHemos visto en nuestro CI el siguiente mensaje de KASAN:\nBUG: KASAN: slab-out-of-bounds en cmd_exec+0x550/0xca0 [mlx5_core]\nLectura de tama\u00f1o 272 en la direcci\u00f3n 0000000176795020 por la tarea qemu-system-s39/82764\n[...]\n[\u003c000011388ab3a7a0\u003e] cmd_exec+0x550/0xca0 [mlx5_core]\n[\u003c000011388ab3b61c\u003e] mlx5_cmd_exec_cb+0x25c/0x4f0 [mlx5_core]\n[\u003c000011388b21e82e\u003e] mlx5_vdpa_exec_async_cmds+0x22e/0x5e0 [mlx5_vdpa]\n[\u003c000011388b21fd44\u003e] create_direct_keys+0x954/0xef0 [mlx5_vdpa]\n[...]\nLa direcci\u00f3n err\u00f3nea se encuentra 4128 bytes dentro de la regi\u00f3n asignada de 4384 bytes [0000000176794000, 0000000176795120)\n\nAs\u00ed que, en esencia, leemos 16 bytes m\u00e1s all\u00e1 de la asignaci\u00f3n de 4384 bytes.\ncreate_direct_keys calcula el puntero y la longitud para los b\u00faferes de entrada y salida.\nEl c\u00e1lculo del tama\u00f1o para la entrada incluye el tama\u00f1o de toda la estructura (salida + entrada + mtt[]) pero el puntero pasado a cmd_exec apunta solo al campo \u0027in\u0027, omitiendo el campo \u0027out\u0027.\n\nEsto hace que mlx5_copy_to_msg() lea m\u00e1s all\u00e1 del b\u00fafer asignado por sizeof(out) bytes al copiar datos de comando.\n\nCalcular correctamente el tama\u00f1o de entrada para que coincida con el puntero y el tama\u00f1o de asignaci\u00f3n."
          }
        ],
        "id": "CVE-2026-74712",
        "lastModified": "2026-10-14T13:10:00.187",
        "metrics": {
          "cvssMetricV31": [
            {
              "cvssData": {
                "attackComplexity": "LOW",
                "attackVector": "LOCAL",
                "availabilityImpact": "HIGH",
                "baseScore": 9.3,
                "baseSeverity": "CRITICAL",
                "confidentialityImpact": "HIGH",
                "integrityImpact": "HIGH",
                "privilegesRequired": "NONE",
                "scope": "CHANGED",
                "userInteraction": "NONE",
                "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H",
                "version": "3.1"
              },
              "exploitabilityScore": 2.5,
              "impactScore": 6.0,
              "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
              "type": "Secondary"
            }
          ]
        },
        "published": "2026-08-22T16:16:45.957",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/6c8a9f7bc00301e533a5366384f3070a8e7f8430"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/727e1f569855df83579edbd73dcb4a0723543a12"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/cde8931a25392670dd59a0acfcab87a830ab66c5"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/ec3bb289cf19d526224117d5d450a5fd9cbd5ab2"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Received"
      }
    },
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2026-08-25T08:55:27+00:00",
      "cve": "CVE-2026-74712",
      "id": "CVE-2026-74712",
      "initial_release_date": "2026-08-22T00:00:00+00:00",
      "product_status:known_affected": "76",
      "product_status:known_not_affected": "198",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: vdpa/mlx5: Fix buffer length in create_direct_keys()",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-74712.json",
      "version": "3"
    }
  }
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Drag nodes to arrange them. Double-click a related vulnerability to open it, or a source to visit its link. The Physics button on the left tunes the layout and the simulation; the legend at the bottom left hides or shows nodes by kind and by sighting type.

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.
Vulnerability timeline

Sightings and recorded dates, grouped by day · UTC

JSON
Events included in the timeline

Loading timeline…


    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.