CVE-2022-50492 (GCVE-0-2022-50492)
Vulnerability from cvelistv5
Published
2025-10-04 15:43
Modified
2026-08-05 08:58
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/
Impacted products
Vendor Product Version
Linux Linux Version: a3376e3ec81c5dd0622cbc187db76d2824d31c1c
Version: a3376e3ec81c5dd0622cbc187db76d2824d31c1c
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"
}


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…