GCVE Workshop - 22 September 2026 (14:00-18:00), Luxembourg Before The Vulnopticon Conference - Registration

CVE-2022-50454 (GCVE-0-2022-50454)

Vulnerability from cvelistv5 – Published: 2025-10-01 11:45 – Updated: 2026-08-05 08:58
VLAI
Title
drm/nouveau: fix a use-after-free in nouveau_gem_prime_import_sg_table()
Summary
In the Linux kernel, the following vulnerability has been resolved: drm/nouveau: fix a use-after-free in nouveau_gem_prime_import_sg_table() nouveau_bo_init() is backed by ttm_bo_init() and ferries its return code back to the caller. On failures, ttm will call nouveau_bo_del_ttm() and free the memory.Thus, when nouveau_bo_init() returns an error, the gem object has already been released. Then the call to nouveau_bo_ref() will use the freed "nvbo->bo" and lead to a use-after-free bug. We should delete the call to nouveau_bo_ref() to avoid the use-after-free.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 019cbd4a4feb3aa3a917d78e7110e3011bbff6d5 , < 56ee9577915dc06f55309901012a9ef68dbdb5a8 (git)
Affected: 019cbd4a4feb3aa3a917d78e7110e3011bbff6d5 , < 5d6093c49c098d86c7b136aba9922df44aeb6944 (git)
Affected: 019cbd4a4feb3aa3a917d78e7110e3011bbff6d5 , < 861f085f81fd569b02cc2c11165a9e6cca144424 (git)
Affected: 019cbd4a4feb3aa3a917d78e7110e3011bbff6d5 , < 3aeda2fe6517cc52663d4ce3588dd43f0d4124a7 (git)
Affected: 019cbd4a4feb3aa3a917d78e7110e3011bbff6d5 , < 7d80473e9f12548ac05b36af4fb9ce80f2f73509 (git)
Affected: 019cbd4a4feb3aa3a917d78e7110e3011bbff6d5 , < 540dfd188ea2940582841c1c220bd035a7db0e51 (git)
guessed Create a notification for this product.
Linux Linux Affected: 5.4
Unaffected: 0 , < 5.4 (semver)
Unaffected: 5.4.220 , ≤ 5.4.* (semver)
Unaffected: 5.10.150 , ≤ 5.10.* (semver)
Unaffected: 5.15.75 , ≤ 5.15.* (semver)
Unaffected: 5.19.17 , ≤ 5.19.* (semver)
Unaffected: 6.0.3 , ≤ 6.0.* (semver)
Unaffected: 6.1 , ≤ * (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/gpu/drm/nouveau/nouveau_prime.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "56ee9577915dc06f55309901012a9ef68dbdb5a8",
              "status": "affected",
              "version": "019cbd4a4feb3aa3a917d78e7110e3011bbff6d5",
              "versionType": "git"
            },
            {
              "lessThan": "5d6093c49c098d86c7b136aba9922df44aeb6944",
              "status": "affected",
              "version": "019cbd4a4feb3aa3a917d78e7110e3011bbff6d5",
              "versionType": "git"
            },
            {
              "lessThan": "861f085f81fd569b02cc2c11165a9e6cca144424",
              "status": "affected",
              "version": "019cbd4a4feb3aa3a917d78e7110e3011bbff6d5",
              "versionType": "git"
            },
            {
              "lessThan": "3aeda2fe6517cc52663d4ce3588dd43f0d4124a7",
              "status": "affected",
              "version": "019cbd4a4feb3aa3a917d78e7110e3011bbff6d5",
              "versionType": "git"
            },
            {
              "lessThan": "7d80473e9f12548ac05b36af4fb9ce80f2f73509",
              "status": "affected",
              "version": "019cbd4a4feb3aa3a917d78e7110e3011bbff6d5",
              "versionType": "git"
            },
            {
              "lessThan": "540dfd188ea2940582841c1c220bd035a7db0e51",
              "status": "affected",
              "version": "019cbd4a4feb3aa3a917d78e7110e3011bbff6d5",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/gpu/drm/nouveau/nouveau_prime.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.4"
            },
            {
              "lessThan": "5.4",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.4.*",
              "status": "unaffected",
              "version": "5.4.220",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.10.*",
              "status": "unaffected",
              "version": "5.10.150",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.75",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.19.*",
              "status": "unaffected",
              "version": "5.19.17",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.0.*",
              "status": "unaffected",
              "version": "6.0.3",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.1",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.4.220",
                  "versionStartIncluding": "5.4",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.10.150",
                  "versionStartIncluding": "5.4",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.75",
                  "versionStartIncluding": "5.4",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.19.17",
                  "versionStartIncluding": "5.4",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.0.3",
                  "versionStartIncluding": "5.4",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1",
                  "versionStartIncluding": "5.4",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/nouveau: fix a use-after-free in nouveau_gem_prime_import_sg_table()\n\nnouveau_bo_init() is backed by ttm_bo_init() and ferries its return code\nback to the caller. On failures, ttm will call nouveau_bo_del_ttm() and\nfree the memory.Thus, when nouveau_bo_init() returns an error, the gem\nobject has already been released. Then the call to nouveau_bo_ref() will\nuse the freed \"nvbo-\u003ebo\" and lead to a use-after-free bug.\n\nWe should delete the call to nouveau_bo_ref() to avoid the use-after-free."
        }
      ],
      "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 UAF is reached only via local DRM_IOCTL_PRIME_FD_TO_HANDLE on a Nouveau render/primary node (drm_gem_prime_fd_to_handle \u2192 drm_gem_prime_import \u2192 nouveau_gem_prime_import_sg_table); there is no network or adjacent-protocol path into this GPU PRIME import code.\nAC:L - An unprivileged attacker who can open Nouveau and obtain a foreign dma-buf (common hybrid iGPU\u2192Nouveau PRIME, v4l2, or dma-heap) can induce nouveau_bo_init/ttm_bo_init failure via GART/TTM/VMA resource exhaustion so the post-free nouveau_bo_ref() runs deterministically; this is not an attacker-uncontrollable race.\nPR:L - DRM_IOCTL_PRIME_FD_TO_HANDLE is DRM_RENDER_ALLOW and usable by an unprivileged local user with access to /dev/dri/renderD* (render/video group or seat uaccess), without real root or init-namespace admin.\nUI:N - The attacker opens the render node and issues the PRIME FD-to-handle ioctl themselves; no separate victim mount, file open, or interactive action is required.\nS:U - Impact is confined to the host kernel\u0027s Nouveau/TTM heap within the same OS security authority; this is local privilege-escalation class corruption, not a VM escape, IOMMU bypass, or sandbox boundary cross.\nC:H - On nouveau_bo_init failure, ttm already calls nouveau_bo_del_ttm()/kfree(nvbo), then the buggy nouveau_bo_ref() performs ttm_bo_put() on the freed object\u2014a classic UAF that per guidance enables arbitrary kernel read via reclaim/spray.\nI:H - The same post-free ttm_bo_put()/kref path corrupts heap metadata and enables reuse of the freed nouveau_bo for arbitrary write and control-flow hijack primitives.\nA:H - Use-after-free on the freed TTM/GEM object produces kernel oops/panic even when not fully exploited, which scores Availability High under kernel CVSS guidance."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T08:58:51.159Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/56ee9577915dc06f55309901012a9ef68dbdb5a8"
        },
        {
          "url": "https://git.kernel.org/stable/c/5d6093c49c098d86c7b136aba9922df44aeb6944"
        },
        {
          "url": "https://git.kernel.org/stable/c/861f085f81fd569b02cc2c11165a9e6cca144424"
        },
        {
          "url": "https://git.kernel.org/stable/c/3aeda2fe6517cc52663d4ce3588dd43f0d4124a7"
        },
        {
          "url": "https://git.kernel.org/stable/c/7d80473e9f12548ac05b36af4fb9ce80f2f73509"
        },
        {
          "url": "https://git.kernel.org/stable/c/540dfd188ea2940582841c1c220bd035a7db0e51"
        }
      ],
      "title": "drm/nouveau: fix a use-after-free in nouveau_gem_prime_import_sg_table()",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2022-50454",
    "datePublished": "2025-10-01T11:45:27.337Z",
    "dateReserved": "2025-10-01T11:38:45.640Z",
    "dateUpdated": "2026-08-05T08:58:51.159Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2022-50454",
      "date": "2026-09-16",
      "epss": "0.0016",
      "percentile": "0.0557"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2022-50454\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2025-10-01T12:15:38.510\",\"lastModified\":\"2026-08-04T10:18:17.227\",\"vulnStatus\":\"Modified\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\ndrm/nouveau: fix a use-after-free in nouveau_gem_prime_import_sg_table()\\n\\nnouveau_bo_init() is backed by ttm_bo_init() and ferries its return code\\nback to the caller. On failures, ttm will call nouveau_bo_del_ttm() and\\nfree the memory.Thus, when nouveau_bo_init() returns an error, the gem\\nobject has already been released. Then the call to nouveau_bo_ref() will\\nuse the freed \\\"nvbo-\u003ebo\\\" and lead to a use-after-free bug.\\n\\nWe should delete the call to nouveau_bo_ref() to avoid the use-after-free.\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"drivers/gpu/drm/nouveau/nouveau_prime.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"019cbd4a4feb3aa3a917d78e7110e3011bbff6d5\",\"lessThan\":\"56ee9577915dc06f55309901012a9ef68dbdb5a8\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"019cbd4a4feb3aa3a917d78e7110e3011bbff6d5\",\"lessThan\":\"5d6093c49c098d86c7b136aba9922df44aeb6944\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"019cbd4a4feb3aa3a917d78e7110e3011bbff6d5\",\"lessThan\":\"861f085f81fd569b02cc2c11165a9e6cca144424\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"019cbd4a4feb3aa3a917d78e7110e3011bbff6d5\",\"lessThan\":\"3aeda2fe6517cc52663d4ce3588dd43f0d4124a7\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"019cbd4a4feb3aa3a917d78e7110e3011bbff6d5\",\"lessThan\":\"7d80473e9f12548ac05b36af4fb9ce80f2f73509\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"019cbd4a4feb3aa3a917d78e7110e3011bbff6d5\",\"lessThan\":\"540dfd188ea2940582841c1c220bd035a7db0e51\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"drivers/gpu/drm/nouveau/nouveau_prime.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"5.4\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"5.4\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"5.4.220\",\"lessThanOrEqual\":\"5.4.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"5.10.150\",\"lessThanOrEqual\":\"5.10.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"5.15.75\",\"lessThanOrEqual\":\"5.15.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"5.19.17\",\"lessThanOrEqual\":\"5.19.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.0.3\",\"lessThanOrEqual\":\"6.0.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.1\",\"lessThanOrEqual\":\"*\",\"versionType\":\"original_commit_for_fix\",\"status\":\"unaffected\"}]}]}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H\",\"baseScore\":7.8,\"baseSeverity\":\"HIGH\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":5.9},{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H\",\"baseScore\":7.8,\"baseSeverity\":\"HIGH\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":5.9}]},\"weaknesses\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-416\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"5.4\",\"versionEndExcluding\":\"5.4.220\",\"matchCriteriaId\":\"C86E91CD-1AC4-4C91-8097-B6DD58212EE2\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"5.5\",\"versionEndExcluding\":\"5.10.150\",\"matchCriteriaId\":\"C495821C-2A71-4F09-BED8-6A6EB4C9BA27\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"5.11\",\"versionEndExcluding\":\"5.15.75\",\"matchCriteriaId\":\"6D945F46-F32F-4C09-8400-C3477E22A9FB\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"5.16\",\"versionEndExcluding\":\"5.19.17\",\"matchCriteriaId\":\"19B4C3A4-E5C3-41DC-BB14-BE72858E7D35\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.0\",\"versionEndExcluding\":\"6.0.3\",\"matchCriteriaId\":\"5BCD8201-B847-4442-B894-70D430128DEF\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/3aeda2fe6517cc52663d4ce3588dd43f0d4124a7\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/540dfd188ea2940582841c1c220bd035a7db0e51\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/56ee9577915dc06f55309901012a9ef68dbdb5a8\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/5d6093c49c098d86c7b136aba9922df44aeb6944\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/7d80473e9f12548ac05b36af4fb9ce80f2f73509\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/861f085f81fd569b02cc2c11165a9e6cca144424\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]}]}}",
    "redhat_vex": {
      "aggregate_severity": "None",
      "current_release_date": "2026-06-30T10:27:58+00:00",
      "cve": "CVE-2022-50454",
      "id": "CVE-2022-50454",
      "initial_release_date": "2022-01-01T00:00:00+00:00",
      "product_status:known_not_affected": "274",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: drm/nouveau: fix a use-after-free in nouveau_gem_prime_import_sg_table()",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2022/cve-2022-50454.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "moderate",
      "current_release_date": "2026-08-31T01:23:27Z",
      "cve": "CVE-2022-50454",
      "id": "CVE-2022-50454",
      "initial_release_date": "2025-10-03T00:03:09Z",
      "product_status:known_affected": "344",
      "product_status:known_not_affected": "352",
      "product_status:recommended": "273",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2022-50454",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2022-50454.json",
      "version": "33"
    }
  }
}



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…