CVE-2026-74574 (GCVE-0-2026-74574)

Vulnerability from cvelistv5 – Published: 2026-08-15 12:28 – Updated: 2026-08-17 05:48
VLAI
Title
dmaengine: idxd: fix fdev setup failure cleanup in idxd_cdev_open()
Summary
In the Linux kernel, the following vulnerability has been resolved: dmaengine: idxd: fix fdev setup failure cleanup in idxd_cdev_open() The failed_dev_add and failed_dev_name paths drop the file-device reference while wq->wq_lock is still held. If put_device(fdev) drops the last reference, idxd_file_dev_release() runs synchronously and tries to take wq->wq_lock again, deadlocking. Those paths also fall through into the later ctx cleanup labels even though idxd_file_dev_release() owns that cleanup and frees ctx. This can make idxd_xa_pasid_remove(ctx) and kfree(ctx) operate on a freed context. Move idxd_wq_get() before file-device setup can fail, since the release callback always calls idxd_wq_put(). Then unlock wq->wq_lock before put_device(fdev) and return directly from the file-device setup failure path, leaving ctx cleanup to the release callback.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: e6fd6d7e5f0fe4a17a08e892afb5db800e7794ec , < 778ccbded2c8749c5be7f0dfa04fc9977a36fb7e (git)
Affected: e6fd6d7e5f0fe4a17a08e892afb5db800e7794ec , < 8d5d28285728be47c82fdf1c48be4268293c90e7 (git)
Affected: e6fd6d7e5f0fe4a17a08e892afb5db800e7794ec , < 0679c0c189d2548f00e1bac95be28e2df5c6c7f7 (git)
Affected: e6fd6d7e5f0fe4a17a08e892afb5db800e7794ec , < 6e26a41c4c1a706edaaa7c7dffc6b3b945707a55 (git)
Affected: e6fd6d7e5f0fe4a17a08e892afb5db800e7794ec , < ee1d7274102285d78a53161fc705a8d8cd40b066 (git)
guessed Create a notification for this product.
Linux Linux Affected: 6.4
Unaffected: 0 , < 6.4 (semver)
Unaffected: 6.6.151 , ≤ 6.6.* (semver)
Unaffected: 6.12.103 , ≤ 6.12.* (semver)
Unaffected: 6.18.44 , ≤ 6.18.* (semver)
Unaffected: 7.1.8 , ≤ 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/dma/idxd/cdev.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "778ccbded2c8749c5be7f0dfa04fc9977a36fb7e",
              "status": "affected",
              "version": "e6fd6d7e5f0fe4a17a08e892afb5db800e7794ec",
              "versionType": "git"
            },
            {
              "lessThan": "8d5d28285728be47c82fdf1c48be4268293c90e7",
              "status": "affected",
              "version": "e6fd6d7e5f0fe4a17a08e892afb5db800e7794ec",
              "versionType": "git"
            },
            {
              "lessThan": "0679c0c189d2548f00e1bac95be28e2df5c6c7f7",
              "status": "affected",
              "version": "e6fd6d7e5f0fe4a17a08e892afb5db800e7794ec",
              "versionType": "git"
            },
            {
              "lessThan": "6e26a41c4c1a706edaaa7c7dffc6b3b945707a55",
              "status": "affected",
              "version": "e6fd6d7e5f0fe4a17a08e892afb5db800e7794ec",
              "versionType": "git"
            },
            {
              "lessThan": "ee1d7274102285d78a53161fc705a8d8cd40b066",
              "status": "affected",
              "version": "e6fd6d7e5f0fe4a17a08e892afb5db800e7794ec",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/dma/idxd/cdev.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.4"
            },
            {
              "lessThan": "6.4",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.151",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.103",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.44",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.1.*",
              "status": "unaffected",
              "version": "7.1.8",
              "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.6.151",
                  "versionStartIncluding": "6.4",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.103",
                  "versionStartIncluding": "6.4",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.44",
                  "versionStartIncluding": "6.4",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.1.8",
                  "versionStartIncluding": "6.4",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2",
                  "versionStartIncluding": "6.4",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndmaengine: idxd: fix fdev setup failure cleanup in idxd_cdev_open()\n\nThe failed_dev_add and failed_dev_name paths drop the file-device\nreference while wq-\u003ewq_lock is still held. If put_device(fdev) drops the\nlast reference, idxd_file_dev_release() runs synchronously and tries to\ntake wq-\u003ewq_lock again, deadlocking.\n\nThose paths also fall through into the later ctx cleanup labels even\nthough idxd_file_dev_release() owns that cleanup and frees ctx. This can\nmake idxd_xa_pasid_remove(ctx) and kfree(ctx) operate on a freed context.\n\nMove idxd_wq_get() before file-device setup can fail, since the release\ncallback always calls idxd_wq_put(). Then unlock wq-\u003ewq_lock before\nput_device(fdev) and return directly from the file-device setup failure\npath, leaving ctx cleanup to the release callback."
        }
      ],
      "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 flaw is reached only through the local open() syscall on an Intel DSA/IDXD user workqueue character device (/dev/dsa/wq* or /dev/iax/wq*); idxd_cdev_open() is the cdev .open handler and is not reachable from any network-facing kernel service.\nAC:L - An attacker who can open the cdev can reliably hit the failed_dev_name/failed_dev_add cleanup by inducing GFP_KERNEL allocation failures (e.g., memory pressure) during device setup; no race or victim-controlled state beyond that is required.\nPR:L - Exploitation requires only local permission to open the configured user-type DSA workqueue cdev, which on DSA-equipped servers is commonly granted to unprivileged workload/service accounts via udev group ACLs after one-time admin WQ setup, not init-namespace root.\nUI:N - The attacker triggers the bug by opening the character device themselves; no additional end-user or administrator interaction is required at exploitation time beyond prior WQ enablement.\nS:U - The deadlock, use-after-free, and double-free corrupt kernel/IDXD driver heap state and block the affected workqueue; impact does not cross VM, IOMMU/DMA, or other security boundaries into a separate authority.\nC:H - On the error path put_device() synchronously runs idxd_file_dev_release(), which kfree()s ctx while idxd_cdev_open() still references it via filp-\u003eprivate_data, and the fall-through path can call idxd_xa_pasid_remove()/kfree() again\u2014classic kernel heap UAF enabling memory disclosure.\nI:H - Double-free and use-after-free of the kmalloc-backed idxd_user_context can corrupt slab metadata and be developed into arbitrary kernel memory writes and privilege escalation, not merely a controlled error return.\nA:H - Calling put_device() while holding wq-\u003ewq_lock deadlocks when idxd_file_dev_release() re-acquires that mutex, hanging the opener and blocking all other users of the workqueue; heap corruption can additionally panic the kernel."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-17T05:48:53.873Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/778ccbded2c8749c5be7f0dfa04fc9977a36fb7e"
        },
        {
          "url": "https://git.kernel.org/stable/c/8d5d28285728be47c82fdf1c48be4268293c90e7"
        },
        {
          "url": "https://git.kernel.org/stable/c/0679c0c189d2548f00e1bac95be28e2df5c6c7f7"
        },
        {
          "url": "https://git.kernel.org/stable/c/6e26a41c4c1a706edaaa7c7dffc6b3b945707a55"
        },
        {
          "url": "https://git.kernel.org/stable/c/ee1d7274102285d78a53161fc705a8d8cd40b066"
        }
      ],
      "title": "dmaengine: idxd: fix fdev setup failure cleanup in idxd_cdev_open()",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-74574",
    "datePublished": "2026-08-15T12:28:12.558Z",
    "dateReserved": "2026-08-15T05:44:03.917Z",
    "dateUpdated": "2026-08-17T05:48:53.873Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-74574",
      "date": "2026-09-20",
      "epss": "0.00122",
      "percentile": "0.02317"
    },
    "microsoft_vex": {
      "current_release_date": "2026-08-23T14:43:49.000Z",
      "cve": "CVE-2026-74574",
      "id": "msrc_CVE-2026-74574",
      "initial_release_date": "2026-08-23T14:43:49.000Z",
      "product_status:known_not_affected": "1",
      "source": "Microsoft CSAF VEX",
      "status": "final",
      "title": "dmaengine: idxd: fix fdev setup failure cleanup in idxd_cdev_open()",
      "url": "https://msrc.microsoft.com/csaf/vex/2026/msrc_cve-2026-74574.json",
      "version": "1"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "drivers/dma/idxd/cdev.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "778ccbded2c8749c5be7f0dfa04fc9977a36fb7e",
                    "status": "affected",
                    "version": "e6fd6d7e5f0fe4a17a08e892afb5db800e7794ec",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "8d5d28285728be47c82fdf1c48be4268293c90e7",
                    "status": "affected",
                    "version": "e6fd6d7e5f0fe4a17a08e892afb5db800e7794ec",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "0679c0c189d2548f00e1bac95be28e2df5c6c7f7",
                    "status": "affected",
                    "version": "e6fd6d7e5f0fe4a17a08e892afb5db800e7794ec",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "6e26a41c4c1a706edaaa7c7dffc6b3b945707a55",
                    "status": "affected",
                    "version": "e6fd6d7e5f0fe4a17a08e892afb5db800e7794ec",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "ee1d7274102285d78a53161fc705a8d8cd40b066",
                    "status": "affected",
                    "version": "e6fd6d7e5f0fe4a17a08e892afb5db800e7794ec",
                    "versionType": "git"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "drivers/dma/idxd/cdev.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "6.4"
                  },
                  {
                    "lessThan": "6.4",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.6.*",
                    "status": "unaffected",
                    "version": "6.6.151",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.12.*",
                    "status": "unaffected",
                    "version": "6.12.103",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.18.*",
                    "status": "unaffected",
                    "version": "6.18.44",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "7.1.*",
                    "status": "unaffected",
                    "version": "7.1.8",
                    "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\ndmaengine: idxd: fix fdev setup failure cleanup in idxd_cdev_open()\n\nThe failed_dev_add and failed_dev_name paths drop the file-device\nreference while wq-\u003ewq_lock is still held. If put_device(fdev) drops the\nlast reference, idxd_file_dev_release() runs synchronously and tries to\ntake wq-\u003ewq_lock again, deadlocking.\n\nThose paths also fall through into the later ctx cleanup labels even\nthough idxd_file_dev_release() owns that cleanup and frees ctx. This can\nmake idxd_xa_pasid_remove(ctx) and kfree(ctx) operate on a freed context.\n\nMove idxd_wq_get() before file-device setup can fail, since the release\ncallback always calls idxd_wq_put(). Then unlock wq-\u003ewq_lock before\nput_device(fdev) and return directly from the file-device setup failure\npath, leaving ctx cleanup to the release callback."
          }
        ],
        "id": "CVE-2026-74574",
        "lastModified": "2026-08-17T06:19:55.750",
        "metrics": {
          "cvssMetricV31": [
            {
              "cvssData": {
                "attackComplexity": "LOW",
                "attackVector": "LOCAL",
                "availabilityImpact": "HIGH",
                "baseScore": 7.8,
                "baseSeverity": "HIGH",
                "confidentialityImpact": "HIGH",
                "integrityImpact": "HIGH",
                "privilegesRequired": "LOW",
                "scope": "UNCHANGED",
                "userInteraction": "NONE",
                "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
                "version": "3.1"
              },
              "exploitabilityScore": 1.8,
              "impactScore": 5.9,
              "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
              "type": "Secondary"
            }
          ]
        },
        "published": "2026-08-15T13:18:03.063",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/0679c0c189d2548f00e1bac95be28e2df5c6c7f7"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/6e26a41c4c1a706edaaa7c7dffc6b3b945707a55"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/778ccbded2c8749c5be7f0dfa04fc9977a36fb7e"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/8d5d28285728be47c82fdf1c48be4268293c90e7"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/ee1d7274102285d78a53161fc705a8d8cd40b066"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Received"
      }
    },
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2026-09-03T20:46:37+00:00",
      "cve": "CVE-2026-74574",
      "id": "CVE-2026-74574",
      "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: dmaengine: idxd: fix fdev setup failure cleanup in idxd_cdev_open()",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-74574.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "moderate",
      "current_release_date": "2026-08-18T16:53:28Z",
      "cve": "CVE-2026-74574",
      "id": "CVE-2026-74574",
      "initial_release_date": "2026-08-18T16:53:28Z",
      "product_status:known_affected": "30",
      "product_status:known_not_affected": "254",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2026-74574",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2026-74574.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…

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…