CVE-2026-53230 (GCVE-0-2026-53230)
Vulnerability from cvelistv5
Published
2026-06-25 08:39
Modified
2026-08-05 12:34
Summary
In the Linux kernel, the following vulnerability has been resolved: net/mlx5: Fix slab-out-of-bounds in mlx5_query_nic_vport_mac_list mlx5_query_nic_vport_mac_list() sizes its firmware command buffer using the PF's log_max_current_uc/mc_list capabilities. When querying a VF vport with a larger configured max (via devlink), the firmware response can overflow this buffer: BUG: KASAN: slab-out-of-bounds in mlx5_query_nic_vport_mac_list+0x453/0x4c0 [mlx5_core] Read of size 4 at addr ff1100013ffc8a12 by task kworker/u96:2/385 CPU: 12 UID: 0 PID: 385 Comm: kworker/u96:2 Not tainted 7.0.0-rc6+ #1 PREEMPT Hardware name: QEMU Standard PC (Q35 + ICH9, 2009) Workqueue: mlx5_esw_wq esw_vport_change_handler [mlx5_core] Call Trace: <TASK> dump_stack_lvl+0x69/0xa0 print_report+0x176/0x4e4 kasan_report+0xc8/0x100 mlx5_query_nic_vport_mac_list+0x453/0x4c0 [mlx5_core] esw_update_vport_addr_list+0x2e3/0xda0 [mlx5_core] esw_vport_change_handle_locked+0xa1f/0x1060 [mlx5_core] esw_vport_change_handler+0x6a/0x90 [mlx5_core] process_one_work+0x87f/0x15e0 worker_thread+0x62b/0x1020 kthread+0x375/0x490 ret_from_fork+0x4dc/0x810 ret_from_fork_asm+0x11/0x20 </TASK> Fix by querying the vport's own HCA caps to size the buffer correctly. Refactor the function to allocate and return the MAC list internally, removing the caller's dependency on knowing the correct max.
Impacted products
Vendor Product Version
Linux Linux Version: e16aea2744abea612c27ee0eef606c6a6a8204de
Version: e16aea2744abea612c27ee0eef606c6a6a8204de
Version: e16aea2744abea612c27ee0eef606c6a6a8204de
Version: e16aea2744abea612c27ee0eef606c6a6a8204de
Version: e16aea2744abea612c27ee0eef606c6a6a8204de
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/ethernet/mellanox/mlx5/core/eswitch.c",
            "drivers/net/ethernet/mellanox/mlx5/core/vport.c",
            "include/linux/mlx5/vport.h"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "41781f2789309462520a93822e946521ed78f97f",
              "status": "affected",
              "version": "e16aea2744abea612c27ee0eef606c6a6a8204de",
              "versionType": "git"
            },
            {
              "lessThan": "537d87784e81c3d7037525b99416455cee088cdc",
              "status": "affected",
              "version": "e16aea2744abea612c27ee0eef606c6a6a8204de",
              "versionType": "git"
            },
            {
              "lessThan": "0f807764bb122fd63aa45f4229cb1ef2679fbd40",
              "status": "affected",
              "version": "e16aea2744abea612c27ee0eef606c6a6a8204de",
              "versionType": "git"
            },
            {
              "lessThan": "2398e497389ed4be43f7cfbab499b49cec7dae1a",
              "status": "affected",
              "version": "e16aea2744abea612c27ee0eef606c6a6a8204de",
              "versionType": "git"
            },
            {
              "lessThan": "894e036a24a26a6dd7b17d8d3fb5c53ab48a6074",
              "status": "affected",
              "version": "e16aea2744abea612c27ee0eef606c6a6a8204de",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/ethernet/mellanox/mlx5/core/eswitch.c",
            "drivers/net/ethernet/mellanox/mlx5/core/vport.c",
            "include/linux/mlx5/vport.h"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "4.5"
            },
            {
              "lessThan": "4.5",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.143",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.94",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.36",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.0.*",
              "status": "unaffected",
              "version": "7.0.13",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.1",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.143",
                  "versionStartIncluding": "4.5",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.94",
                  "versionStartIncluding": "4.5",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.36",
                  "versionStartIncluding": "4.5",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.0.13",
                  "versionStartIncluding": "4.5",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.1",
                  "versionStartIncluding": "4.5",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet/mlx5: Fix slab-out-of-bounds in mlx5_query_nic_vport_mac_list\n\nmlx5_query_nic_vport_mac_list() sizes its firmware command buffer using\nthe PF\u0027s log_max_current_uc/mc_list capabilities. When querying a VF\nvport with a larger configured max (via devlink), the firmware response\ncan overflow this buffer:\n\n BUG: KASAN: slab-out-of-bounds in mlx5_query_nic_vport_mac_list+0x453/0x4c0 [mlx5_core]\n Read of size 4 at addr ff1100013ffc8a12 by task kworker/u96:2/385\n\n CPU: 12 UID: 0 PID: 385 Comm: kworker/u96:2 Not tainted 7.0.0-rc6+ #1 PREEMPT\n Hardware name: QEMU Standard PC (Q35 + ICH9, 2009)\n Workqueue: mlx5_esw_wq esw_vport_change_handler [mlx5_core]\n Call Trace:\n  \u003cTASK\u003e\n  dump_stack_lvl+0x69/0xa0\n  print_report+0x176/0x4e4\n  kasan_report+0xc8/0x100\n  mlx5_query_nic_vport_mac_list+0x453/0x4c0 [mlx5_core]\n  esw_update_vport_addr_list+0x2e3/0xda0 [mlx5_core]\n  esw_vport_change_handle_locked+0xa1f/0x1060 [mlx5_core]\n  esw_vport_change_handler+0x6a/0x90 [mlx5_core]\n  process_one_work+0x87f/0x15e0\n  worker_thread+0x62b/0x1020\n  kthread+0x375/0x490\n  ret_from_fork+0x4dc/0x810\n  ret_from_fork_asm+0x11/0x20\n  \u003c/TASK\u003e\n\nFix by querying the vport\u0027s own HCA caps to size the buffer correctly.\nRefactor the function to allocate and return the MAC list internally,\nremoving the caller\u0027s dependency on knowing the correct max."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 8.7,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:L/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - The vulnerable PF eswitch worker is reached through local VF/device control paths, not by ordinary remote packets. A plausible severe scenario is a tenant or container with local control of an mlx5 SR-IOV VF triggering vport MAC-list changes.\nAC:L - There is no race or timing requirement; once a VF vport has a larger MAC-list capability than the PF-sized query buffer, changing the VF MAC filter state deterministically queues the PF query path. The required SR-IOV/devlink configuration is an affected deployment condition.\nPR:L - The host/VF must be in an affected mlx5 SR-IOV configuration, but the triggering MAC-list changes can be made from delegated VF/net namespace privileges such as CAP_NET_RAW or CAP_NET_ADMIN rather than host root. User namespaces and containerized VF deployments make this closer to low privilege than real host-admin-only access.\nUI:N - No victim user action is needed after the affected VF is available. The attacker can trigger the vport context change directly through local network-device control operations.\nS:C - In SR-IOV or passthrough deployments, a VF-side actor can cause faults in the host PF eswitch driver. That crosses the VF/guest security boundary into the host kernel\u2019s security authority.\nC:H - The bug reads past the allocated firmware command response buffer while copying MAC entries, exposing adjacent kernel heap contents in principle. The out-of-bounds read is not strictly limited to only a few bytes.\nI:L - The read data is consumed as MAC-list state and can result in unintended eswitch/FDB address programming, but the investigated path does not show an arbitrary kernel write primitive. This supports limited integrity impact rather than full code execution.\nA:H - The reported failure is a KASAN slab-out-of-bounds in a kernel workqueue, and on affected systems it can oops or panic the host kernel. The trigger can be repeated through VF MAC-list changes."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T12:34:22.423Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/41781f2789309462520a93822e946521ed78f97f"
        },
        {
          "url": "https://git.kernel.org/stable/c/537d87784e81c3d7037525b99416455cee088cdc"
        },
        {
          "url": "https://git.kernel.org/stable/c/0f807764bb122fd63aa45f4229cb1ef2679fbd40"
        },
        {
          "url": "https://git.kernel.org/stable/c/2398e497389ed4be43f7cfbab499b49cec7dae1a"
        },
        {
          "url": "https://git.kernel.org/stable/c/894e036a24a26a6dd7b17d8d3fb5c53ab48a6074"
        }
      ],
      "title": "net/mlx5: Fix slab-out-of-bounds in mlx5_query_nic_vport_mac_list",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-53230",
    "datePublished": "2026-06-25T08:39:29.210Z",
    "dateReserved": "2026-06-09T07:44:35.393Z",
    "dateUpdated": "2026-08-05T12:34:22.423Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.


Loading…

Loading…