CVE-2024-46896 (GCVE-0-2024-46896)
Vulnerability from cvelistv5
Published
2025-01-11 12:35
Modified
2025-05-04 09:36
Severity ?
Summary
In the Linux kernel, the following vulnerability has been resolved: drm/amdgpu: don't access invalid sched Since 2320c9e6a768 ("drm/sched: memset() 'job' in drm_sched_job_init()") accessing job->base.sched can produce unexpected results as the initialisation of (*job)->base.sched done in amdgpu_job_alloc is overwritten by the memset. This commit fixes an issue when a CS would fail validation and would be rejected after job->num_ibs is incremented. In this case, amdgpu_ib_free(ring->adev, ...) will be called, which would crash the machine because the ring value is bogus. To fix this, pass a NULL pointer to amdgpu_ib_free(): we can do this because the device is actually not used in this function. The next commit will remove the ring argument completely. (cherry picked from commit 2ae520cb12831d264ceb97c61f72c59d33c0dbd7)
Impacted products
Vendor Product Version
Linux Linux Version: 166df51487f46b6e997dfeea7ca0c2a970853f07
Version: 87210234e5a273ebf9c4110a6aa82b8221478daa
Version: 2da108b4b5fb7ec04d7e951418ed80e97f7c35ad
Version: 2320c9e6a768d135c7b0039995182bb1a4e4fd22
Create a notification for this product.
   Linux Linux Version: 6.1.120   
Version: 6.6.66   
Version: 6.12.5   
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/gpu/drm/amd/amdgpu/amdgpu_job.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "65501a4fd84ecdc0af863dbb37759242aab9f2dd",
              "status": "affected",
              "version": "166df51487f46b6e997dfeea7ca0c2a970853f07",
              "versionType": "git"
            },
            {
              "lessThan": "da6b2c626ae73c303378ce9eaf6e3eaf16c9925a",
              "status": "affected",
              "version": "87210234e5a273ebf9c4110a6aa82b8221478daa",
              "versionType": "git"
            },
            {
              "lessThan": "67291d601f2b032062b1b2f60ffef1b63e10094c",
              "status": "affected",
              "version": "2da108b4b5fb7ec04d7e951418ed80e97f7c35ad",
              "versionType": "git"
            },
            {
              "lessThan": "a93b1020eb9386d7da11608477121b10079c076a",
              "status": "affected",
              "version": "2320c9e6a768d135c7b0039995182bb1a4e4fd22",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/gpu/drm/amd/amdgpu/amdgpu_job.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "6.1.122",
              "status": "affected",
              "version": "6.1.120",
              "versionType": "semver"
            },
            {
              "lessThan": "6.6.68",
              "status": "affected",
              "version": "6.6.66",
              "versionType": "semver"
            },
            {
              "lessThan": "6.12.7",
              "status": "affected",
              "version": "6.12.5",
              "versionType": "semver"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.122",
                  "versionStartIncluding": "6.1.120",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.68",
                  "versionStartIncluding": "6.6.66",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.7",
                  "versionStartIncluding": "6.12.5",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/amdgpu: don\u0027t access invalid sched\n\nSince 2320c9e6a768 (\"drm/sched: memset() \u0027job\u0027 in drm_sched_job_init()\")\naccessing job-\u003ebase.sched can produce unexpected results as the initialisation\nof (*job)-\u003ebase.sched done in amdgpu_job_alloc is overwritten by the\nmemset.\n\nThis commit fixes an issue when a CS would fail validation and would\nbe rejected after job-\u003enum_ibs is incremented. In this case,\namdgpu_ib_free(ring-\u003eadev, ...) will be called, which would crash the\nmachine because the ring value is bogus.\n\nTo fix this, pass a NULL pointer to amdgpu_ib_free(): we can do this\nbecause the device is actually not used in this function.\n\nThe next commit will remove the ring argument completely.\n\n(cherry picked from commit 2ae520cb12831d264ceb97c61f72c59d33c0dbd7)"
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2025-05-04T09:36:26.311Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/65501a4fd84ecdc0af863dbb37759242aab9f2dd"
        },
        {
          "url": "https://git.kernel.org/stable/c/da6b2c626ae73c303378ce9eaf6e3eaf16c9925a"
        },
        {
          "url": "https://git.kernel.org/stable/c/67291d601f2b032062b1b2f60ffef1b63e10094c"
        },
        {
          "url": "https://git.kernel.org/stable/c/a93b1020eb9386d7da11608477121b10079c076a"
        }
      ],
      "title": "drm/amdgpu: don\u0027t access invalid sched",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2024-46896",
    "datePublished": "2025-01-11T12:35:34.351Z",
    "dateReserved": "2025-01-11T12:33:33.708Z",
    "dateUpdated": "2025-05-04T09:36:26.311Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.1",
  "vulnerability-lookup:meta": {
    "nvd": "{\"cve\":{\"id\":\"CVE-2024-46896\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2025-01-11T13:15:21.643\",\"lastModified\":\"2025-01-11T13:15:21.643\",\"vulnStatus\":\"Awaiting Analysis\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\ndrm/amdgpu: don\u0027t access invalid sched\\n\\nSince 2320c9e6a768 (\\\"drm/sched: memset() \u0027job\u0027 in drm_sched_job_init()\\\")\\naccessing job-\u003ebase.sched can produce unexpected results as the initialisation\\nof (*job)-\u003ebase.sched done in amdgpu_job_alloc is overwritten by the\\nmemset.\\n\\nThis commit fixes an issue when a CS would fail validation and would\\nbe rejected after job-\u003enum_ibs is incremented. In this case,\\namdgpu_ib_free(ring-\u003eadev, ...) will be called, which would crash the\\nmachine because the ring value is bogus.\\n\\nTo fix this, pass a NULL pointer to amdgpu_ib_free(): we can do this\\nbecause the device is actually not used in this function.\\n\\nThe next commit will remove the ring argument completely.\\n\\n(cherry picked from commit 2ae520cb12831d264ceb97c61f72c59d33c0dbd7)\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: drm/amdgpu: no acceder a sched no v\u00e1lido Desde 2320c9e6a768 (\\\"drm/sched: memset() \u0027job\u0027 en drm_sched_job_init()\\\") acceder a job-\u0026gt;base.sched puede producir resultados inesperados ya que la inicializaci\u00f3n de (*job)-\u0026gt;base.sched realizada en amdgpu_job_alloc es sobrescrita por memset. Esta confirmaci\u00f3n corrige un problema cuando un CS fallar\u00eda la validaci\u00f3n y ser\u00eda rechazado despu\u00e9s de que se incremente job-\u0026gt;num_ibs. En este caso, se llamar\u00e1 a amdgpu_ib_free(ring-\u0026gt;adev, ...), lo que bloquear\u00eda la m\u00e1quina porque el valor de ring es falso. Para corregir esto, pase un puntero NULL a amdgpu_ib_free(): podemos hacer esto porque el dispositivo en realidad no se usa en esta funci\u00f3n. La pr\u00f3xima confirmaci\u00f3n eliminar\u00e1 el argumento ring por completo. (seleccionado del commit 2ae520cb12831d264ceb97c61f72c59d33c0dbd7)\"}],\"metrics\":{},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/65501a4fd84ecdc0af863dbb37759242aab9f2dd\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/67291d601f2b032062b1b2f60ffef1b63e10094c\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/a93b1020eb9386d7da11608477121b10079c076a\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/da6b2c626ae73c303378ce9eaf6e3eaf16c9925a\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}"
  }
}


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.
  • 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…