Skip to content
Heist/ feed
Back to feed
HighFix available

drm/vc4: Stop the active perfmon before being destroyed

Type: advisorySources: OSV

In the Linux kernel, the following vulnerability has been resolved: drm/vc4: Stop the active perfmon before being destroyed Upon closing the file descriptor, the active performance monitor is not stopped. Although all perfmons are destroyed in `vc4_perfmon_close_file()`, the active performance monitor's pointer (`vc4->active_perfmon`) is still retained. If we open a new file descriptor and submit a few jobs with performance monitors, the driver will attempt to stop the active performance monitor using the stale pointer in `vc4->active_perfmon`. However, this pointer is no longer valid because the previous process has already terminated, and all performance monitors associated with it have been destroyed and freed. To fix this, when the active performance monitor belongs to a given process, explicitly stop it before destroying and freeing it.

Products
Kernel
Affected versions
Not specified
Fixed versions
6.1.113, 6.11.4, 6.6.57
CVEs
CVE-2024-50187
Confirmed fixed CVEs
Not specified
Updated in this feed
3 Nov 2026, 19:58 UTC · Revision 1

Source evidence

drm/vc4: Stop the active perfmon before being destroyed

core-osv · Original source

Published 8 Nov 2024, 05:38 UTC

In the Linux kernel, the following vulnerability has been resolved: drm/vc4: Stop the active perfmon before being destroyed Upon closing the file descriptor, the active performance monitor is not stopped. Although all perfmons are destroyed in `vc4_perfmon_close_file()`, the active performance monitor's pointer (`vc4->active_perfmon`) is still retained. If we open a new file descriptor and submit a few jobs with performance monitors, the driver will attempt to stop the active performance monitor using the stale pointer in `vc4->active_perfmon`. However, this pointer is no longer valid because the previous process has already terminated, and all performance monitors associated with it have been destroyed and freed. To fix this, when the active performance monitor belongs to a given process, explicitly stop it before destroying and freeing it.

osv:CVE-2024-50187

Kernel

Fixed versions: 6.1.113, 6.6.57, 6.11.4

Complete source record
{
  "id": "2a1736c6d52c702717c9778ddd4022d4c6599611a1fcc964a36fe399b5a5230e",
  "url": "https://osv.dev/vulnerability/CVE-2024-50187",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "drm/vc4: Stop the active perfmon before being destroyed",
    "summary": "In the Linux kernel, the following vulnerability has been resolved: drm/vc4: Stop the active perfmon before being destroyed Upon closing the file descriptor, the active performance monitor is not stopped. Although all perfmons are destroyed in `vc4_perfmon_close_file()`, the active performance monitor's pointer (`vc4->active_perfmon`) is still retained. If we open a new file descriptor and submit a few jobs with performance monitors, the driver will attempt to stop the active performance monitor using the stale pointer in `vc4->active_perfmon`. However, this pointer is no longer valid because the previous process has already terminated, and all performance monitors associated with it have been destroyed and freed. To fix this, when the active performance monitor belongs to a given process, explicitly stop it before destroying and freeing it.",
    "evidence": "osv:CVE-2024-50187",
    "products": [
      {
        "name": {
          "value": "Kernel",
          "evidence": "/affected/1/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [
          {
            "value": "6.1.113",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.6.57",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.11.4",
            "evidence": "/affected/1/ranges"
          }
        ],
        "affected_versions": []
      }
    ],
    "severity": "high",
    "structured": {
      "id": "CVE-2024-50187",
      "aliases": [
        "CVE-2024-50187"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "type": "GIT",
              "events": [
                {
                  "introduced": "65101d8c9108201118efa7e08f4e2c57f438deb9"
                },
                {
                  "fixed": "75452da51e2403e14be007df80d133e1443fc967"
                },
                {
                  "fixed": "937943c042503dc6087438bf3557f9057a588ba0"
                },
                {
                  "fixed": "c9adba739d5f7cdc47a7754df4a17b47b1ecf513"
                },
                {
                  "fixed": "0b2ad4f6f2bec74a5287d96cb2325a5e11706f22"
                }
              ]
            }
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2024-50187.json"
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "4.17.0"
                },
                {
                  "fixed": "6.1.113"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.2.0"
                },
                {
                  "fixed": "6.6.57"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.7.0"
                },
                {
                  "fixed": "6.11.4"
                }
              ]
            }
          ],
          "package": {
            "name": "Kernel",
            "ecosystem": "Linux"
          },
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2024-50187.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:32.223185980Z",
      "provider": "osv",
      "references": [
        "https://git.kernel.org/stable/c/0b2ad4f6f2bec74a5287d96cb2325a5e11706f22",
        "https://git.kernel.org/stable/c/75452da51e2403e14be007df80d133e1443fc967",
        "https://git.kernel.org/stable/c/937943c042503dc6087438bf3557f9057a588ba0",
        "https://git.kernel.org/stable/c/c9adba739d5f7cdc47a7754df4a17b47b1ecf513",
        "https://lists.debian.org/debian-lts-announce/2025/01/msg00001.html",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2024/50xxx/CVE-2024-50187.json",
        "https://nvd.nist.gov/vuln/detail/CVE-2024-50187",
        "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
      ],
      "provider_metadata": {
        "cna_assigner": "Linux",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2024/50xxx/CVE-2024-50187.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2024-50187",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 498859,
  "published_at": "2024-11-08T05:38:28.194+00:00"
}