CVE-2022-50492 (GCVE-0-2022-50492)

Vulnerability from cvelistv5 – Published: 2025-10-04 15:43 – Updated: 2026-08-05 08:58
VLAI
Title
drm/msm: fix use-after-free on probe deferral
Summary
In the Linux kernel, the following vulnerability has been resolved: drm/msm: fix use-after-free on probe deferral The bridge counter was never reset when tearing down the DRM device so that stale pointers to deallocated structures would be accessed on the next tear down (e.g. after a second late bind deferral). Given enough bridges and a few probe deferrals this could currently also lead to data beyond the bridge array being corrupted. Patchwork: https://patchwork.freedesktop.org/patch/502665/
Assigner
Impacted products
Vendor Product Version
Linux Linux Affected: a3376e3ec81c5dd0622cbc187db76d2824d31c1c , < 0a30a47741b6df1f9555a0fac6aebb7e8c363bad (git)
Affected: a3376e3ec81c5dd0622cbc187db76d2824d31c1c , < 6808abdb33bf90330e70a687d29f038507e06ebb (git)
Create a notification for this product.
Linux Linux Affected: 3.12
Unaffected: 0 , < 3.12 (semver)
Unaffected: 6.0.7 , ≤ 6.0.* (semver)
Unaffected: 6.1 , ≤ * (original_commit_for_fix)
Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/gpu/drm/msm/msm_drv.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "0a30a47741b6df1f9555a0fac6aebb7e8c363bad",
              "status": "affected",
              "version": "a3376e3ec81c5dd0622cbc187db76d2824d31c1c",
              "versionType": "git"
            },
            {
              "lessThan": "6808abdb33bf90330e70a687d29f038507e06ebb",
              "status": "affected",
              "version": "a3376e3ec81c5dd0622cbc187db76d2824d31c1c",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/gpu/drm/msm/msm_drv.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "3.12"
            },
            {
              "lessThan": "3.12",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.0.*",
              "status": "unaffected",
              "version": "6.0.7",
              "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": "6.0.7",
                  "versionStartIncluding": "3.12",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1",
                  "versionStartIncluding": "3.12",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/msm: fix use-after-free on probe deferral\n\nThe bridge counter was never reset when tearing down the DRM device so\nthat stale pointers to deallocated structures would be accessed on the\nnext tear down (e.g. after a second late bind deferral).\n\nGiven enough bridges and a few probe deferrals this could currently also\nlead to data beyond the bridge array being corrupted.\n\nPatchwork: https://patchwork.freedesktop.org/patch/502665/"
        }
      ],
      "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 bug is reached only through the local MSM DRM component bind/unbind path (msm_drm_bind \u2192 msm_drm_init failure \u2192 msm_drm_uninit, or msm_drm_unbind), driven by platform probe deferral or local sysfs/module driver rebind; no network or adjacent-protocol input reaches this code.\nAC:L - A second tear-down after bridges were recorded is enough to hit the stale-pointer drm_bridge_remove() use-after-free, and repeated bind failures deterministically accumulate num_bridges past MAX_BRIDGES (8) into an out-of-bounds write; an attacker who can force rebind controls both sides with no race or unknown memory layout required.\nPR:L - Forcing the path via sysfs unbind/bind or module reload needs CAP_SYS_ADMIN/CAP_SYS_MODULE, but the same uninit path also runs automatically on ordinary boot-time probe deferral of Qualcomm MSM display components with no credentials; resolving that ambiguity toward higher severity gives Low.\nUI:N - Probe deferral retries and driver rebind tear-downs run entirely in kernel worker/driver core context; no victim mount, file open, or other interactive action is required.\nS:U - Corruption stays inside the host kernel\u0027s msm_drm_private / drm_bridge objects on the same security authority; this is not a VM escape, IOMMU bypass, or sandbox boundary cross.\nC:H - This is a use-after-free on drm_bridge objects (drm_bridge_remove \u2192 list_del_init/mutex_destroy on stale pointers) plus overflow of the fixed bridges[8] array into adjacent msm_drm_private state; per guidance a UAF is scored High for confidentiality because freed/reused object contents can be leveraged for arbitrary kernel read.\nI:H - The accumulating num_bridges counter writes bridge pointers past bridges[] into adjacent fields (vram carveout metadata and beyond), and the UAF path performs writes into stale bridge objects, yielding heap/struct corruption exploitable for integrity compromise and control-flow hijack.\nA:H - Use-after-free and out-of-bounds store on the DRM probe/unbind path produce kernel oops/panic (and can wedge display bring-up on MSM phones and embedded boards), which scores as High availability impact."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T08:58:57.602Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/0a30a47741b6df1f9555a0fac6aebb7e8c363bad"
        },
        {
          "url": "https://git.kernel.org/stable/c/6808abdb33bf90330e70a687d29f038507e06ebb"
        }
      ],
      "title": "drm/msm: fix use-after-free on probe deferral",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2022-50492",
    "datePublished": "2025-10-04T15:43:45.204Z",
    "dateReserved": "2025-10-04T15:39:19.463Z",
    "dateUpdated": "2026-08-05T08:58:57.602Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2022-50492",
      "date": "2026-08-06",
      "epss": "0.00143",
      "percentile": "0.0405"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2022-50492\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2025-10-04T16:15:46.190\",\"lastModified\":\"2026-08-04T10:18:18.130\",\"vulnStatus\":\"Modified\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\ndrm/msm: fix use-after-free on probe deferral\\n\\nThe bridge counter was never reset when tearing down the DRM device so\\nthat stale pointers to deallocated structures would be accessed on the\\nnext tear down (e.g. after a second late bind deferral).\\n\\nGiven enough bridges and a few probe deferrals this could currently also\\nlead to data beyond the bridge array being corrupted.\\n\\nPatchwork: https://patchwork.freedesktop.org/patch/502665/\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"drivers/gpu/drm/msm/msm_drv.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"a3376e3ec81c5dd0622cbc187db76d2824d31c1c\",\"lessThan\":\"0a30a47741b6df1f9555a0fac6aebb7e8c363bad\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"a3376e3ec81c5dd0622cbc187db76d2824d31c1c\",\"lessThan\":\"6808abdb33bf90330e70a687d29f038507e06ebb\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"drivers/gpu/drm/msm/msm_drv.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"3.12\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"3.12\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.0.7\",\"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\":\"3.12\",\"versionEndExcluding\":\"6.0.7\",\"matchCriteriaId\":\"7A765FD0-F7F3-42DC-AF66-A6778A341267\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.1:rc1:*:*:*:*:*:*\",\"matchCriteriaId\":\"E7E331DA-1FB0-4DEC-91AC-7DA69D461C11\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.1:rc2:*:*:*:*:*:*\",\"matchCriteriaId\":\"17F0B248-42CF-4AE6-A469-BB1BAE7F4705\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/0a30a47741b6df1f9555a0fac6aebb7e8c363bad\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/6808abdb33bf90330e70a687d29f038507e06ebb\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]}]}}",
    "redhat_vex": {
      "aggregate_severity": "None",
      "current_release_date": "2026-06-30T10:24:09+00:00",
      "cve": "CVE-2022-50492",
      "id": "CVE-2022-50492",
      "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/msm: fix use-after-free on probe deferral",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2022/cve-2022-50492.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "moderate",
      "current_release_date": "2026-08-05T01:09:40Z",
      "cve": "CVE-2022-50492",
      "id": "CVE-2022-50492",
      "initial_release_date": "2025-10-05T02:57:46Z",
      "product_status:known_affected": "466",
      "product_status:known_not_affected": "162",
      "product_status:recommended": "196",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2022-50492",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2022-50492.json",
      "version": "28"
    }
  }
}



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…

Loading…