CVE-2026-74313 (GCVE-0-2026-74313)

Vulnerability from cvelistv5 – Published: 2026-08-15 05:58 – Updated: 2026-08-17 05:45
VLAI
Title
vduse: hold vduse_lock across IDR lookup in open path
Summary
In the Linux kernel, the following vulnerability has been resolved: vduse: hold vduse_lock across IDR lookup in open path vduse_dev_open() looks up struct vduse_dev through the IDR and then acquires dev->lock only after vduse_lock has been dropped. This leaves a window where a concurrent VDUSE_DESTROY_DEV can remove the same object from the IDR and free it before the open path locks the device, leading to a use-after-free. Close this race by keeping vduse_lock held until dev->lock has been acquired in the open path, matching the lock ordering already used by the destroy path.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: c8a6153b6c59d95c0e091f053f6f180952ade91e , < 35483c5306e09b3190ff937089d404a78012695c (git)
Affected: c8a6153b6c59d95c0e091f053f6f180952ade91e , < 5c1560be8aa6849356455af67518d35c551cbd95 (git)
Affected: c8a6153b6c59d95c0e091f053f6f180952ade91e , < 93ed4692f2299a40346025979f40e4a9b7b33af7 (git)
Affected: c8a6153b6c59d95c0e091f053f6f180952ade91e , < d94e2947203aead590fd63f667d316d4475d65af (git)
Affected: c8a6153b6c59d95c0e091f053f6f180952ade91e , < a2d0a57538fd0b3b3ab75d64bb64f4cd2fab13a2 (git)
Affected: c8a6153b6c59d95c0e091f053f6f180952ade91e , < 79e12c891940b0c4c75881b7fd82a8cbb8ac97be (git)
Affected: c8a6153b6c59d95c0e091f053f6f180952ade91e , < e440e077748939839d9f76e24383b76b785f80ce (git)
guessed Create a notification for this product.
Linux Linux Affected: 5.15
Unaffected: 0 , < 5.15 (semver)
Unaffected: 5.15.212 , ≤ 5.15.* (semver)
Unaffected: 6.1.178 , ≤ 6.1.* (semver)
Unaffected: 6.6.145 , ≤ 6.6.* (semver)
Unaffected: 6.12.97 , ≤ 6.12.* (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/vdpa/vdpa_user/vduse_dev.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "35483c5306e09b3190ff937089d404a78012695c",
              "status": "affected",
              "version": "c8a6153b6c59d95c0e091f053f6f180952ade91e",
              "versionType": "git"
            },
            {
              "lessThan": "5c1560be8aa6849356455af67518d35c551cbd95",
              "status": "affected",
              "version": "c8a6153b6c59d95c0e091f053f6f180952ade91e",
              "versionType": "git"
            },
            {
              "lessThan": "93ed4692f2299a40346025979f40e4a9b7b33af7",
              "status": "affected",
              "version": "c8a6153b6c59d95c0e091f053f6f180952ade91e",
              "versionType": "git"
            },
            {
              "lessThan": "d94e2947203aead590fd63f667d316d4475d65af",
              "status": "affected",
              "version": "c8a6153b6c59d95c0e091f053f6f180952ade91e",
              "versionType": "git"
            },
            {
              "lessThan": "a2d0a57538fd0b3b3ab75d64bb64f4cd2fab13a2",
              "status": "affected",
              "version": "c8a6153b6c59d95c0e091f053f6f180952ade91e",
              "versionType": "git"
            },
            {
              "lessThan": "79e12c891940b0c4c75881b7fd82a8cbb8ac97be",
              "status": "affected",
              "version": "c8a6153b6c59d95c0e091f053f6f180952ade91e",
              "versionType": "git"
            },
            {
              "lessThan": "e440e077748939839d9f76e24383b76b785f80ce",
              "status": "affected",
              "version": "c8a6153b6c59d95c0e091f053f6f180952ade91e",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/vdpa/vdpa_user/vduse_dev.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.15"
            },
            {
              "lessThan": "5.15",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.212",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.178",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.145",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.97",
              "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": "5.15.212",
                  "versionStartIncluding": "5.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.178",
                  "versionStartIncluding": "5.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.145",
                  "versionStartIncluding": "5.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.97",
                  "versionStartIncluding": "5.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.40",
                  "versionStartIncluding": "5.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.1.5",
                  "versionStartIncluding": "5.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2",
                  "versionStartIncluding": "5.15",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nvduse: hold vduse_lock across IDR lookup in open path\n\nvduse_dev_open() looks up struct vduse_dev through the IDR and then\nacquires dev-\u003elock only after vduse_lock has been dropped.\n\nThis leaves a window where a concurrent VDUSE_DESTROY_DEV can remove the\nsame object from the IDR and free it before the open path locks the\ndevice, leading to a use-after-free.\n\nClose this race by keeping vduse_lock held until dev-\u003elock has been\nacquired in the open path, matching the lock ordering already used by\nthe destroy path."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 8.8,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - The vulnerability is only reachable via local syscalls on VDUSE character devices: open(2) on /dev/vduse/$NAME racing with ioctl(VDUSE_DESTROY_DEV) on /dev/vduse/control. It is not triggered by remote network traffic, adjacent wireless protocols, or physical device attachment.\nAC:L - The attacker fully controls both sides of the race by creating a VDUSE device, then concurrently calling open() and VDUSE_DESTROY_DEV from their own threads. No timing or layout conditions outside attacker control are required beyond standard thread scheduling.\nPR:L - Neither the open nor destroy paths enforce capabilities beyond device-node access; only VIRTIO_ID_NET creation requires CAP_NET_ADMIN. VDUSE is designed so userspace dataplane operators with access to /dev/vduse nodes can create, open, and destroy block devices without full host admin rights.\nUI:N - Exploitation requires no victim interaction. The attacker creates their own VDUSE instance and triggers the open/destroy race from their process; no separate user must mount, configure, or open the device.\nS:C - On cloud and virtualization hosts where VDUSE is delegated to containers or NFV tenant workloads, kernel UAF exploitation crosses from the tenant/container security boundary to full host kernel compromise, comparable to a VM or sandbox escape.\nC:H - The race produces a use-after-free of kmalloc\u0027d struct vduse_dev. Locking and dereferencing the freed object, plus subsequent ioctl/read/write using dangling file-\u003eprivate_data, enables slab reuse and arbitrary kernel memory disclosure.\nI:H - UAF of vduse_dev allows heap grooming over mutexes, virtqueue pointers, and config buffers. Follow-on VDUSE ioctls (SET_CONFIG, VQ_SETUP, IOTLB) on the dangling fd provide exploitable arbitrary-write and control-flow hijack primitives.\nA:H - Use-after-free during mutex_lock on the freed device or later VDUSE operations can immediately corrupt kernel memory and trigger oops/panic, fully denying system availability even before full exploitation."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-17T05:45:46.036Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/35483c5306e09b3190ff937089d404a78012695c"
        },
        {
          "url": "https://git.kernel.org/stable/c/5c1560be8aa6849356455af67518d35c551cbd95"
        },
        {
          "url": "https://git.kernel.org/stable/c/93ed4692f2299a40346025979f40e4a9b7b33af7"
        },
        {
          "url": "https://git.kernel.org/stable/c/d94e2947203aead590fd63f667d316d4475d65af"
        },
        {
          "url": "https://git.kernel.org/stable/c/a2d0a57538fd0b3b3ab75d64bb64f4cd2fab13a2"
        },
        {
          "url": "https://git.kernel.org/stable/c/79e12c891940b0c4c75881b7fd82a8cbb8ac97be"
        },
        {
          "url": "https://git.kernel.org/stable/c/e440e077748939839d9f76e24383b76b785f80ce"
        }
      ],
      "title": "vduse: hold vduse_lock across IDR lookup in open path",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-74313",
    "datePublished": "2026-08-15T05:58:12.058Z",
    "dateReserved": "2026-08-15T05:44:03.883Z",
    "dateUpdated": "2026-08-17T05:45:46.036Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-74313",
      "date": "2026-09-20",
      "epss": "0.00126",
      "percentile": "0.02601"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "drivers/vdpa/vdpa_user/vduse_dev.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "35483c5306e09b3190ff937089d404a78012695c",
                    "status": "affected",
                    "version": "c8a6153b6c59d95c0e091f053f6f180952ade91e",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "5c1560be8aa6849356455af67518d35c551cbd95",
                    "status": "affected",
                    "version": "c8a6153b6c59d95c0e091f053f6f180952ade91e",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "93ed4692f2299a40346025979f40e4a9b7b33af7",
                    "status": "affected",
                    "version": "c8a6153b6c59d95c0e091f053f6f180952ade91e",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "d94e2947203aead590fd63f667d316d4475d65af",
                    "status": "affected",
                    "version": "c8a6153b6c59d95c0e091f053f6f180952ade91e",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "a2d0a57538fd0b3b3ab75d64bb64f4cd2fab13a2",
                    "status": "affected",
                    "version": "c8a6153b6c59d95c0e091f053f6f180952ade91e",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "79e12c891940b0c4c75881b7fd82a8cbb8ac97be",
                    "status": "affected",
                    "version": "c8a6153b6c59d95c0e091f053f6f180952ade91e",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "e440e077748939839d9f76e24383b76b785f80ce",
                    "status": "affected",
                    "version": "c8a6153b6c59d95c0e091f053f6f180952ade91e",
                    "versionType": "git"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "drivers/vdpa/vdpa_user/vduse_dev.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "5.15"
                  },
                  {
                    "lessThan": "5.15",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "5.15.*",
                    "status": "unaffected",
                    "version": "5.15.212",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.1.*",
                    "status": "unaffected",
                    "version": "6.1.178",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.6.*",
                    "status": "unaffected",
                    "version": "6.6.145",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.12.*",
                    "status": "unaffected",
                    "version": "6.12.97",
                    "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\nvduse: hold vduse_lock across IDR lookup in open path\n\nvduse_dev_open() looks up struct vduse_dev through the IDR and then\nacquires dev-\u003elock only after vduse_lock has been dropped.\n\nThis leaves a window where a concurrent VDUSE_DESTROY_DEV can remove the\nsame object from the IDR and free it before the open path locks the\ndevice, leading to a use-after-free.\n\nClose this race by keeping vduse_lock held until dev-\u003elock has been\nacquired in the open path, matching the lock ordering already used by\nthe destroy path."
          }
        ],
        "id": "CVE-2026-74313",
        "lastModified": "2026-08-17T06:19:25.603",
        "metrics": {
          "cvssMetricV31": [
            {
              "cvssData": {
                "attackComplexity": "LOW",
                "attackVector": "LOCAL",
                "availabilityImpact": "HIGH",
                "baseScore": 8.8,
                "baseSeverity": "HIGH",
                "confidentialityImpact": "HIGH",
                "integrityImpact": "HIGH",
                "privilegesRequired": "LOW",
                "scope": "CHANGED",
                "userInteraction": "NONE",
                "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H",
                "version": "3.1"
              },
              "exploitabilityScore": 2.0,
              "impactScore": 6.0,
              "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
              "type": "Secondary"
            }
          ]
        },
        "published": "2026-08-15T06:22:31.460",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/35483c5306e09b3190ff937089d404a78012695c"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/5c1560be8aa6849356455af67518d35c551cbd95"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/79e12c891940b0c4c75881b7fd82a8cbb8ac97be"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/93ed4692f2299a40346025979f40e4a9b7b33af7"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/a2d0a57538fd0b3b3ab75d64bb64f4cd2fab13a2"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/d94e2947203aead590fd63f667d316d4475d65af"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/e440e077748939839d9f76e24383b76b785f80ce"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Received"
      }
    },
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2026-08-20T16:57:53+00:00",
      "cve": "CVE-2026-74313",
      "id": "CVE-2026-74313",
      "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: vduse: hold vduse_lock across IDR lookup in open path",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-74313.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "moderate",
      "current_release_date": "2026-09-15T01:23:04Z",
      "cve": "CVE-2026-74313",
      "id": "CVE-2026-74313",
      "initial_release_date": "2026-08-27T00:22:46Z",
      "product_status:known_affected": "177",
      "product_status:known_not_affected": "185",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2026-74313",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2026-74313.json",
      "version": "4"
    }
  }
}



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…