CVE-2022-50079 (GCVE-0-2022-50079)
Vulnerability from cvelistv5
Published
2025-06-18 11:02
Modified
2026-08-05 08:57
Summary
In the Linux kernel, the following vulnerability has been resolved: drm/amd/display: Check correct bounds for stream encoder instances for DCN303 [Why & How] eng_id for DCN303 cannot be more than 1, since we have only two instances of stream encoders. Check the correct boundary condition for engine ID for DCN303 prevent the potential out of bounds access.
Impacted products
Vendor Product Version
Linux Linux Version: cd6d421e3d1ad5926b74091254e345db730e7706
Version: cd6d421e3d1ad5926b74091254e345db730e7706
Version: cd6d421e3d1ad5926b74091254e345db730e7706
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/gpu/drm/amd/display/dc/dcn303/dcn303_resource.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "82a27c1855445d48aacc67b0c0640f3dadebe52f",
              "status": "affected",
              "version": "cd6d421e3d1ad5926b74091254e345db730e7706",
              "versionType": "git"
            },
            {
              "lessThan": "4c31dca1799612eb3b6413e3e574f90c3fb8f865",
              "status": "affected",
              "version": "cd6d421e3d1ad5926b74091254e345db730e7706",
              "versionType": "git"
            },
            {
              "lessThan": "89b008222c2bf21e50219725caed31590edfd9d1",
              "status": "affected",
              "version": "cd6d421e3d1ad5926b74091254e345db730e7706",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/gpu/drm/amd/display/dc/dcn303/dcn303_resource.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.14"
            },
            {
              "lessThan": "5.14",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.63",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.19.*",
              "status": "unaffected",
              "version": "5.19.4",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.0",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.63",
                  "versionStartIncluding": "5.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.19.4",
                  "versionStartIncluding": "5.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.0",
                  "versionStartIncluding": "5.14",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/amd/display: Check correct bounds for stream encoder instances for DCN303\n\n[Why \u0026 How]\neng_id for DCN303 cannot be more than 1, since we have only two\ninstances of stream encoders.\n\nCheck the correct boundary condition for engine ID for DCN303 prevent\nthe potential out of bounds access."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - The bug is in amdgpu display-core resource construction (`amdgpu_dm_init` \u2192 `dc_create` \u2192 `dcn303_resource_construct` \u2192 `resource_construct` \u2192 `dcn303_stream_encoder_create`), reachable only during local GPU probe/module load with no network or physical-bus path.\nAC:H - Reaching an out-of-bounds `eng_id` requires a value \u2265 2, but the sole caller loops `i \u003c res_cap_dcn303.num_stream_encoder` where that count is a compile-time constant of 2 that no code path modifies \u2014 the required condition is entirely outside any attacker\u0027s influence.\nPR:L - The code runs during driver probe at boot or module load rather than via an unprivileged ioctl; scoring the more severe arguable option (probe/autoload reachable to a low-privileged local user on a Beige Goby system) rather than requiring full root.\nUI:N - Resource-pool construction happens automatically during amdgpu initialization with no victim action such as mounting a filesystem or opening a file.\nS:U - Any resulting corruption stays within the kernel\u0027s own security authority on the affected host; no VM, IOMMU, or sandbox boundary is crossed.\nC:H - An out-of-bounds read past `stream_enc_regs[]` yields values stored as MMIO register offsets, so encoder helpers would read arbitrary GPU registers outside the intended DIO block, exposing device and potentially framebuffer/engine state.\nI:H - The same bogus offsets are used for `REG_UPDATE`/`REG_SET` writes, enabling writes to unintended GPU registers in the aperture and corrupting display-engine state on a DMA-capable device that on APUs shares system memory.\nA:H - Programming a stream encoder through a garbage register-offset table would misprogram or hang the GPU display pipeline and can oops the driver, causing full availability loss for graphics and potentially the machine."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T08:57:20.643Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/82a27c1855445d48aacc67b0c0640f3dadebe52f"
        },
        {
          "url": "https://git.kernel.org/stable/c/4c31dca1799612eb3b6413e3e574f90c3fb8f865"
        },
        {
          "url": "https://git.kernel.org/stable/c/89b008222c2bf21e50219725caed31590edfd9d1"
        }
      ],
      "title": "drm/amd/display: Check correct bounds for stream encoder instances for DCN303",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2022-50079",
    "datePublished": "2025-06-18T11:02:22.235Z",
    "dateReserved": "2025-06-18T10:57:27.409Z",
    "dateUpdated": "2026-08-05T08:57:20.643Z",
    "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…