CVE-2026-43056 (GCVE-0-2026-43056)
Vulnerability from cvelistv5
Published
2026-05-01 14:15
Modified
2026-08-05 12:25
Summary
In the Linux kernel, the following vulnerability has been resolved: net: mana: fix use-after-free in add_adev() error path If auxiliary_device_add() fails, add_adev() jumps to add_fail and calls auxiliary_device_uninit(adev). The auxiliary device has its release callback set to adev_release(), which frees the containing struct mana_adev. Since adev is embedded in struct mana_adev, the subsequent fall-through to init_fail and access to adev->id may result in a use-after-free. Fix this by saving the allocated auxiliary device id in a local variable before calling auxiliary_device_add(), and use that saved id in the cleanup path after auxiliary_device_uninit().
Impacted products
Vendor Product Version
Linux Linux Version: a69839d4327d053b18d8e1b0e7ddeee78db78f4f
Version: a69839d4327d053b18d8e1b0e7ddeee78db78f4f
Version: a69839d4327d053b18d8e1b0e7ddeee78db78f4f
Version: a69839d4327d053b18d8e1b0e7ddeee78db78f4f
Version: a69839d4327d053b18d8e1b0e7ddeee78db78f4f
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/ethernet/microsoft/mana/mana_en.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "d88541ffd56d62a61e77209080001eddd4d69815",
              "status": "affected",
              "version": "a69839d4327d053b18d8e1b0e7ddeee78db78f4f",
              "versionType": "git"
            },
            {
              "lessThan": "43f5b19fd190fea20d052bc84741b28031d5baa9",
              "status": "affected",
              "version": "a69839d4327d053b18d8e1b0e7ddeee78db78f4f",
              "versionType": "git"
            },
            {
              "lessThan": "5f4061f8225d18695e5afe9bbf1cb7bd673d7872",
              "status": "affected",
              "version": "a69839d4327d053b18d8e1b0e7ddeee78db78f4f",
              "versionType": "git"
            },
            {
              "lessThan": "e5a75bf026c686b91a7dc6f9c5caf5016745d1fe",
              "status": "affected",
              "version": "a69839d4327d053b18d8e1b0e7ddeee78db78f4f",
              "versionType": "git"
            },
            {
              "lessThan": "c4ea7d8907cf72b259bf70bd8c2e791e1c4ff70f",
              "status": "affected",
              "version": "a69839d4327d053b18d8e1b0e7ddeee78db78f4f",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/ethernet/microsoft/mana/mana_en.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.2"
            },
            {
              "lessThan": "6.2",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.134",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.81",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.22",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.19.*",
              "status": "unaffected",
              "version": "6.19.12",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.0",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.134",
                  "versionStartIncluding": "6.2",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.81",
                  "versionStartIncluding": "6.2",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.22",
                  "versionStartIncluding": "6.2",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.19.12",
                  "versionStartIncluding": "6.2",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.0",
                  "versionStartIncluding": "6.2",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: mana: fix use-after-free in add_adev() error path\n\nIf auxiliary_device_add() fails, add_adev() jumps to add_fail and calls\nauxiliary_device_uninit(adev).\n\nThe auxiliary device has its release callback set to adev_release(),\nwhich frees the containing struct mana_adev. Since adev is embedded in\nstruct mana_adev, the subsequent fall-through to init_fail and access\nto adev-\u003eid may result in a use-after-free.\n\nFix this by saving the allocated auxiliary device id in a local\nvariable before calling auxiliary_device_add(), and use that saved id\nin the cleanup path after auxiliary_device_uninit()."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.8,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - The vulnerable `add_adev()` error path is reached during MANA PCI driver probe/resume/recovery or auxiliary RDMA service handling, not by processing received network packets. The highest defensible attacker path is local influence over driver/device lifecycle or resource-failure conditions.\nAC:L - Once `auxiliary_device_add()` fails, the UAF is deterministic because `auxiliary_device_uninit()` releases the embedded object and the cleanup path immediately reads `adev-\u003eid`. No attacker-uncontrolled race is required beyond reaching that failure path.\nPR:L - The path is not exposed to unauthenticated remote peers, but a local attacker can plausibly influence resource exhaustion/failure conditions around driver lifecycle events. Direct sysfs/module lifecycle control is privileged, but Low is the higher-severity defensible choice under the conservative scoring rule.\nUI:N - No separate victim action is required once the attacker can exercise or influence the local driver lifecycle/failure path. Probe, resume, and service-event handling run in kernel context.\nS:U - The affected component and impacts are within the Linux kernel security scope. This is not a VM escape, IOMMU bypass, or cross-authority boundary violation.\nC:H - This is a kernel use-after-free of an auxiliary-device container object after its release callback frees it. Under conservative kernel UAF scoring, freed slab reuse can support information disclosure, so confidentiality is High.\nI:H - The UAF lets stale object contents influence cleanup through `mana_adev_idx_free()`, and kernel UAFs are conservatively treated as potentially exploitable memory corruption. Integrity is therefore High.\nA:H - At minimum, the stale access can trigger a kernel UAF report, invalid IDA cleanup, oops, or panic during probe/resume error unwinding. Availability impact is High."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T12:25:37.114Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/d88541ffd56d62a61e77209080001eddd4d69815"
        },
        {
          "url": "https://git.kernel.org/stable/c/43f5b19fd190fea20d052bc84741b28031d5baa9"
        },
        {
          "url": "https://git.kernel.org/stable/c/5f4061f8225d18695e5afe9bbf1cb7bd673d7872"
        },
        {
          "url": "https://git.kernel.org/stable/c/e5a75bf026c686b91a7dc6f9c5caf5016745d1fe"
        },
        {
          "url": "https://git.kernel.org/stable/c/c4ea7d8907cf72b259bf70bd8c2e791e1c4ff70f"
        }
      ],
      "title": "net: mana: fix use-after-free in add_adev() error path",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-43056",
    "datePublished": "2026-05-01T14:15:48.837Z",
    "dateReserved": "2026-05-01T14:12:55.980Z",
    "dateUpdated": "2026-08-05T12:25:37.114Z",
    "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…