CVE-2024-35810 (GCVE-0-2024-35810)

Vulnerability from cvelistv5 – Published: 2024-05-17 13:23 – Updated: 2026-08-05 11:30
VLAI
Title
drm/vmwgfx: Fix the lifetime of the bo cursor memory
Summary
In the Linux kernel, the following vulnerability has been resolved: drm/vmwgfx: Fix the lifetime of the bo cursor memory The cleanup can be dispatched while the atomic update is still active, which means that the memory acquired in the atomic update needs to not be invalidated by the cleanup. The buffer objects in vmw_plane_state instead of using the builtin map_and_cache were trying to handle the lifetime of the mapped memory themselves, leading to crashes. Use the map_and_cache instead of trying to manage the lifetime of the buffer objects held by the vmw_plane_state. Fixes kernel oops'es in IGT's kms_cursor_legacy forked-bo.
SSVC
Exploitation: none Automatable: no Technical Impact: partial
CISA Coordinator (v2.0.3)
Assigner
Impacted products
Vendor Product Version
Linux Linux Affected: bb6780aa5a1d99e86757c0c96bfae65a46cf839e , < 86cb706a40b7e6b2221ee49a298a65ad9b46c02d (git)
Affected: bb6780aa5a1d99e86757c0c96bfae65a46cf839e , < 104a5b2772bc7c0715ae7355ccf9d294a472765c (git)
Affected: bb6780aa5a1d99e86757c0c96bfae65a46cf839e , < ed381800ea6d9a4c7f199235a471c0c48100f0ae (git)
Affected: bb6780aa5a1d99e86757c0c96bfae65a46cf839e , < 9a9e8a7159ca09af9b1a300a6c8e8b6ff7501c76 (git)
Create a notification for this product.
Linux Linux Affected: 6.2
Unaffected: 0 , < 6.2 (semver)
Unaffected: 6.6.24 , ≤ 6.6.* (semver)
Unaffected: 6.7.12 , ≤ 6.7.* (semver)
Unaffected: 6.8.3 , ≤ 6.8.* (semver)
Unaffected: 6.9 , ≤ * (original_commit_for_fix)
Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "adp": [
      {
        "providerMetadata": {
          "dateUpdated": "2024-08-02T03:21:47.494Z",
          "orgId": "af854a3a-2127-422b-91ae-364da2661108",
          "shortName": "CVE"
        },
        "references": [
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/86cb706a40b7e6b2221ee49a298a65ad9b46c02d"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/104a5b2772bc7c0715ae7355ccf9d294a472765c"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/ed381800ea6d9a4c7f199235a471c0c48100f0ae"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/9a9e8a7159ca09af9b1a300a6c8e8b6ff7501c76"
          }
        ],
        "title": "CVE Program Container"
      },
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2024-35810",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2024-09-10T15:42:38.486904Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2024-09-11T17:32:51.914Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/gpu/drm/vmwgfx/vmwgfx_kms.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "86cb706a40b7e6b2221ee49a298a65ad9b46c02d",
              "status": "affected",
              "version": "bb6780aa5a1d99e86757c0c96bfae65a46cf839e",
              "versionType": "git"
            },
            {
              "lessThan": "104a5b2772bc7c0715ae7355ccf9d294a472765c",
              "status": "affected",
              "version": "bb6780aa5a1d99e86757c0c96bfae65a46cf839e",
              "versionType": "git"
            },
            {
              "lessThan": "ed381800ea6d9a4c7f199235a471c0c48100f0ae",
              "status": "affected",
              "version": "bb6780aa5a1d99e86757c0c96bfae65a46cf839e",
              "versionType": "git"
            },
            {
              "lessThan": "9a9e8a7159ca09af9b1a300a6c8e8b6ff7501c76",
              "status": "affected",
              "version": "bb6780aa5a1d99e86757c0c96bfae65a46cf839e",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/gpu/drm/vmwgfx/vmwgfx_kms.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.2"
            },
            {
              "lessThan": "6.2",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.24",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.7.*",
              "status": "unaffected",
              "version": "6.7.12",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.8.*",
              "status": "unaffected",
              "version": "6.8.3",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.9",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.24",
                  "versionStartIncluding": "6.2",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.7.12",
                  "versionStartIncluding": "6.2",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.8.3",
                  "versionStartIncluding": "6.2",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.9",
                  "versionStartIncluding": "6.2",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/vmwgfx: Fix the lifetime of the bo cursor memory\n\nThe cleanup can be dispatched while the atomic update is still active,\nwhich means that the memory acquired in the atomic update needs to\nnot be invalidated by the cleanup. The buffer objects in vmw_plane_state\ninstead of using the builtin map_and_cache were trying to handle\nthe lifetime of the mapped memory themselves, leading to crashes.\n\nUse the map_and_cache instead of trying to manage the lifetime of the\nbuffer objects held by the vmw_plane_state.\n\nFixes kernel oops\u0027es in IGT\u0027s kms_cursor_legacy forked-bo."
        }
      ],
      "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 DRM ioctls (DRM_IOCTL_MODE_CURSOR/CURSOR2/ATOMIC) on the local /dev/dri/card0 node of a VMware guest. There is no network-facing path into the vmwgfx KMS cursor plane code.\nAC:L - The attacker controls both sides of the race: legacy cursor updates are explicitly \"fully unsynced\" in the atomic helpers (flip_done is completed immediately), so the cleanup_fb worker overlaps the atomic_update by design, and forking processes that hammer cursor updates on a shared BO reproduces it reliably \u2014 this is precisely the IGT kms_cursor_legacy forked-bo reproducer.\nPR:L - An unprivileged local user with access to the DRM card node suffices \u2014 drm_master_open() grants mastership to the first opener when no master exists, with no capability check, and logind ACLs grant the console/session user that access in a VMware guest. No root or CAP_SYS_ADMIN is needed.\nUI:N - The attacker\u0027s own processes issue all the cursor ioctls that create and win the race; no action by any other user is required.\nS:U - The corrupted mappings and buffer objects are all guest-kernel memory managed by the same vmwgfx/TTM authority; there is no guest-to-host escape or IOMMU boundary crossing.\nC:H - After the concurrent ttm_bo_kunmap()/vunmap(), the vmalloc VA range can be reused by other kernel subsystems (kernel stacks, modules, BPF), and the stale pointer is then read by memcmp() and by memcpy(header + 1, image, image_size) into the cursor MOB that gets rendered as the visible cursor \u2014 a use-after-unmap read that discloses recycled kernel memory.\nI:H - This is a use-after-free/use-after-unmap class bug: racing kmap/kunmap on the shared vmw_bo-\u003emap allows double-vunmap of a VA that another subsystem may have re-mapped, and the concurrent cursor-MOB swap/put lets vmw_cursor_update_mob() memcpy into a buffer object that has been returned to the cache or freed, giving heap-spray and write primitives.\nA:H - The commit explicitly states it \"Fixes kernel oops\u0027es in IGT\u0027s kms_cursor_legacy forked-bo\"; dereferencing the vunmap\u0027d address faults in kernel context, and ttm_bo_kunmap()\u0027s default case is a BUG(), so the race yields a reliable kernel crash."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T11:30:04.778Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/86cb706a40b7e6b2221ee49a298a65ad9b46c02d"
        },
        {
          "url": "https://git.kernel.org/stable/c/104a5b2772bc7c0715ae7355ccf9d294a472765c"
        },
        {
          "url": "https://git.kernel.org/stable/c/ed381800ea6d9a4c7f199235a471c0c48100f0ae"
        },
        {
          "url": "https://git.kernel.org/stable/c/9a9e8a7159ca09af9b1a300a6c8e8b6ff7501c76"
        }
      ],
      "title": "drm/vmwgfx: Fix the lifetime of the bo cursor memory",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2024-35810",
    "datePublished": "2024-05-17T13:23:16.829Z",
    "dateReserved": "2024-05-17T12:19:12.342Z",
    "dateUpdated": "2026-08-05T11:30:04.778Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2024-35810",
      "date": "2026-08-05",
      "epss": "0.00234",
      "percentile": "0.1434"
    },
    "microsoft_vex": {
      "current_release_date": "2024-09-11T00:00:00.000Z",
      "cve": "CVE-2024-35810",
      "id": "msrc_CVE-2024-35810",
      "initial_release_date": "2024-05-02T07:00:00.000Z",
      "product_status:fixed": "2",
      "product_status:known_affected": "2",
      "source": "Microsoft CSAF VEX",
      "status": "final",
      "title": "drm/vmwgfx: Fix the lifetime of the bo cursor memory",
      "url": "https://msrc.microsoft.com/csaf/vex/2024/msrc_cve-2024-35810.json",
      "version": "1"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2024-35810\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2024-05-17T14:15:14.970\",\"lastModified\":\"2026-06-17T07:35:27.267\",\"vulnStatus\":\"Analyzed\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\ndrm/vmwgfx: Fix the lifetime of the bo cursor memory\\n\\nThe cleanup can be dispatched while the atomic update is still active,\\nwhich means that the memory acquired in the atomic update needs to\\nnot be invalidated by the cleanup. The buffer objects in vmw_plane_state\\ninstead of using the builtin map_and_cache were trying to handle\\nthe lifetime of the mapped memory themselves, leading to crashes.\\n\\nUse the map_and_cache instead of trying to manage the lifetime of the\\nbuffer objects held by the vmw_plane_state.\\n\\nFixes kernel oops\u0027es in IGT\u0027s kms_cursor_legacy forked-bo.\"},{\"lang\":\"es\",\"value\":\" En el kernel de Linux, se resolvi\u00f3 la siguiente vulnerabilidad: drm/vmwgfx: corregida la vida \u00fatil de la memoria del cursor bo. La sanitizaci\u00f3n se puede realizar mientras la actualizaci\u00f3n at\u00f3mica a\u00fan est\u00e1 activa, lo que significa que la memoria adquirida en la actualizaci\u00f3n at\u00f3mica no necesita ser invalidado por la limpieza. Los objetos del b\u00fafer en vmw_plane_state, en lugar de utilizar el map_and_cache incorporado, intentaban manejar ellos mismos la vida \u00fatil de la memoria asignada, lo que provocaba fallos. Utilice map_and_cache en lugar de intentar administrar la vida \u00fatil de los objetos del b\u00fafer retenidos por vmw_plane_state. Corrige los errores del kernel en kms_cursor_legacy forked-bo de IGT.\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"drivers/gpu/drm/vmwgfx/vmwgfx_kms.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"bb6780aa5a1d99e86757c0c96bfae65a46cf839e\",\"lessThan\":\"86cb706a40b7e6b2221ee49a298a65ad9b46c02d\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"bb6780aa5a1d99e86757c0c96bfae65a46cf839e\",\"lessThan\":\"104a5b2772bc7c0715ae7355ccf9d294a472765c\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"bb6780aa5a1d99e86757c0c96bfae65a46cf839e\",\"lessThan\":\"ed381800ea6d9a4c7f199235a471c0c48100f0ae\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"bb6780aa5a1d99e86757c0c96bfae65a46cf839e\",\"lessThan\":\"9a9e8a7159ca09af9b1a300a6c8e8b6ff7501c76\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"drivers/gpu/drm/vmwgfx/vmwgfx_kms.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"6.2\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"6.2\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.6.24\",\"lessThanOrEqual\":\"6.6.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.7.12\",\"lessThanOrEqual\":\"6.7.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.8.3\",\"lessThanOrEqual\":\"6.8.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.9\",\"lessThanOrEqual\":\"*\",\"versionType\":\"original_commit_for_fix\",\"status\":\"unaffected\"}]}]}],\"metrics\":{\"cvssMetricV31\":[{\"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:N/I:N/A:H\",\"baseScore\":5.5,\"baseSeverity\":\"MEDIUM\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"NONE\",\"integrityImpact\":\"NONE\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":3.6}],\"ssvcV203\":[{\"source\":\"134c704f-9b21-4f2e-91b3-4a467353bcc0\",\"ssvcData\":{\"timestamp\":\"2024-09-10T15:42:38.486904Z\",\"id\":\"CVE-2024-35810\",\"options\":[{\"exploitation\":\"none\"},{\"automatable\":\"no\"},{\"technicalImpact\":\"partial\"}],\"role\":\"CISA Coordinator\",\"version\":\"2.0.3\"}}]},\"weaknesses\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"description\":[{\"lang\":\"en\",\"value\":\"NVD-CWE-noinfo\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.2\",\"versionEndExcluding\":\"6.6.24\",\"matchCriteriaId\":\"8018C1D0-0A5F-48D0-BC72-A2B33FDDA693\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.7\",\"versionEndExcluding\":\"6.7.12\",\"matchCriteriaId\":\"6BE9771A-BAFD-4624-95F9-58D536540C53\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.8\",\"versionEndExcluding\":\"6.8.3\",\"matchCriteriaId\":\"4C59BBC3-6495-4A77-9C82-55EC7CDF5E02\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/104a5b2772bc7c0715ae7355ccf9d294a472765c\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/86cb706a40b7e6b2221ee49a298a65ad9b46c02d\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/9a9e8a7159ca09af9b1a300a6c8e8b6ff7501c76\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/ed381800ea6d9a4c7f199235a471c0c48100f0ae\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/104a5b2772bc7c0715ae7355ccf9d294a472765c\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/86cb706a40b7e6b2221ee49a298a65ad9b46c02d\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/9a9e8a7159ca09af9b1a300a6c8e8b6ff7501c76\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/ed381800ea6d9a4c7f199235a471c0c48100f0ae\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\"]}]}}",
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2026-08-04T19:06:45+00:00",
      "cve": "CVE-2024-35810",
      "id": "CVE-2024-35810",
      "initial_release_date": "2024-05-17T00:00:00+00:00",
      "product_status:fixed": "709",
      "product_status:known_affected": "64",
      "product_status:known_not_affected": "8",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: drm/vmwgfx: Fix the lifetime of the bo cursor memory",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2024/cve-2024-35810.json",
      "version": "3"
    },
    "vulnrichment": {
      "containers": "{\"adp\": [{\"title\": \"CVE Program Container\", \"references\": [{\"url\": \"https://git.kernel.org/stable/c/86cb706a40b7e6b2221ee49a298a65ad9b46c02d\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/104a5b2772bc7c0715ae7355ccf9d294a472765c\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/ed381800ea6d9a4c7f199235a471c0c48100f0ae\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/9a9e8a7159ca09af9b1a300a6c8e8b6ff7501c76\", \"tags\": [\"x_transferred\"]}], \"providerMetadata\": {\"orgId\": \"af854a3a-2127-422b-91ae-364da2661108\", \"shortName\": \"CVE\", \"dateUpdated\": \"2024-08-02T03:21:47.494Z\"}}, {\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2024-35810\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"partial\"}], \"version\": \"2.0.3\", \"timestamp\": \"2024-09-10T15:42:38.486904Z\"}}}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2024-09-11T12:42:13.136Z\"}}], \"cna\": {\"title\": \"drm/vmwgfx: Fix the lifetime of the bo cursor memory\", \"metrics\": [{\"cvssV3_1\": {\"version\": \"3.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\"}, \"scenarios\": [{\"lang\": \"en\", \"value\": \"AV:L - The bug is reached only through DRM ioctls (DRM_IOCTL_MODE_CURSOR/CURSOR2/ATOMIC) on the local /dev/dri/card0 node of a VMware guest. There is no network-facing path into the vmwgfx KMS cursor plane code.\\nAC:L - The attacker controls both sides of the race: legacy cursor updates are explicitly \\\"fully unsynced\\\" in the atomic helpers (flip_done is completed immediately), so the cleanup_fb worker overlaps the atomic_update by design, and forking processes that hammer cursor updates on a shared BO reproduces it reliably \\u2014 this is precisely the IGT kms_cursor_legacy forked-bo reproducer.\\nPR:L - An unprivileged local user with access to the DRM card node suffices \\u2014 drm_master_open() grants mastership to the first opener when no master exists, with no capability check, and logind ACLs grant the console/session user that access in a VMware guest. No root or CAP_SYS_ADMIN is needed.\\nUI:N - The attacker\u0027s own processes issue all the cursor ioctls that create and win the race; no action by any other user is required.\\nS:U - The corrupted mappings and buffer objects are all guest-kernel memory managed by the same vmwgfx/TTM authority; there is no guest-to-host escape or IOMMU boundary crossing.\\nC:H - After the concurrent ttm_bo_kunmap()/vunmap(), the vmalloc VA range can be reused by other kernel subsystems (kernel stacks, modules, BPF), and the stale pointer is then read by memcmp() and by memcpy(header + 1, image, image_size) into the cursor MOB that gets rendered as the visible cursor \\u2014 a use-after-unmap read that discloses recycled kernel memory.\\nI:H - This is a use-after-free/use-after-unmap class bug: racing kmap/kunmap on the shared vmw_bo-\u003emap allows double-vunmap of a VA that another subsystem may have re-mapped, and the concurrent cursor-MOB swap/put lets vmw_cursor_update_mob() memcpy into a buffer object that has been returned to the cache or freed, giving heap-spray and write primitives.\\nA:H - The commit explicitly states it \\\"Fixes kernel oops\u0027es in IGT\u0027s kms_cursor_legacy forked-bo\\\"; dereferencing the vunmap\u0027d address faults in kernel context, and ttm_bo_kunmap()\u0027s default case is a BUG(), so the race yields a reliable kernel crash.\"}]}], \"affected\": [{\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"bb6780aa5a1d99e86757c0c96bfae65a46cf839e\", \"lessThan\": \"86cb706a40b7e6b2221ee49a298a65ad9b46c02d\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"bb6780aa5a1d99e86757c0c96bfae65a46cf839e\", \"lessThan\": \"104a5b2772bc7c0715ae7355ccf9d294a472765c\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"bb6780aa5a1d99e86757c0c96bfae65a46cf839e\", \"lessThan\": \"ed381800ea6d9a4c7f199235a471c0c48100f0ae\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"bb6780aa5a1d99e86757c0c96bfae65a46cf839e\", \"lessThan\": \"9a9e8a7159ca09af9b1a300a6c8e8b6ff7501c76\", \"versionType\": \"git\"}], \"programFiles\": [\"drivers/gpu/drm/vmwgfx/vmwgfx_kms.c\"], \"defaultStatus\": \"unaffected\"}, {\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"6.2\"}, {\"status\": \"unaffected\", \"version\": \"0\", \"lessThan\": \"6.2\", \"versionType\": \"semver\"}, {\"status\": \"unaffected\", \"version\": \"6.6.24\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.6.*\"}, {\"status\": \"unaffected\", \"version\": \"6.7.12\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.7.*\"}, {\"status\": \"unaffected\", \"version\": \"6.8.3\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.8.*\"}, {\"status\": \"unaffected\", \"version\": \"6.9\", \"versionType\": \"original_commit_for_fix\", \"lessThanOrEqual\": \"*\"}], \"programFiles\": [\"drivers/gpu/drm/vmwgfx/vmwgfx_kms.c\"], \"defaultStatus\": \"affected\"}], \"references\": [{\"url\": \"https://git.kernel.org/stable/c/86cb706a40b7e6b2221ee49a298a65ad9b46c02d\"}, {\"url\": \"https://git.kernel.org/stable/c/104a5b2772bc7c0715ae7355ccf9d294a472765c\"}, {\"url\": \"https://git.kernel.org/stable/c/ed381800ea6d9a4c7f199235a471c0c48100f0ae\"}, {\"url\": \"https://git.kernel.org/stable/c/9a9e8a7159ca09af9b1a300a6c8e8b6ff7501c76\"}], \"x_generator\": {\"engine\": \"bippy-1.2.0\"}, \"descriptions\": [{\"lang\": \"en\", \"value\": \"In the Linux kernel, the following vulnerability has been resolved:\\n\\ndrm/vmwgfx: Fix the lifetime of the bo cursor memory\\n\\nThe cleanup can be dispatched while the atomic update is still active,\\nwhich means that the memory acquired in the atomic update needs to\\nnot be invalidated by the cleanup. The buffer objects in vmw_plane_state\\ninstead of using the builtin map_and_cache were trying to handle\\nthe lifetime of the mapped memory themselves, leading to crashes.\\n\\nUse the map_and_cache instead of trying to manage the lifetime of the\\nbuffer objects held by the vmw_plane_state.\\n\\nFixes kernel oops\u0027es in IGT\u0027s kms_cursor_legacy forked-bo.\"}], \"cpeApplicability\": [{\"nodes\": [{\"negate\": false, \"cpeMatch\": [{\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.6.24\", \"versionStartIncluding\": \"6.2\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.7.12\", \"versionStartIncluding\": \"6.2\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.8.3\", \"versionStartIncluding\": \"6.2\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.9\", \"versionStartIncluding\": \"6.2\"}], \"operator\": \"OR\"}]}], \"providerMetadata\": {\"orgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"shortName\": \"Linux\", \"dateUpdated\": \"2026-08-05T11:30:04.778Z\"}}}",
      "cveMetadata": "{\"cveId\": \"CVE-2024-35810\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2026-08-05T11:30:04.778Z\", \"dateReserved\": \"2024-05-17T12:19:12.342Z\", \"assignerOrgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"datePublished\": \"2024-05-17T13:23:16.829Z\", \"assignerShortName\": \"Linux\"}",
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }
  }
}



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…