GCVE Workshop - 22 September 2026 (14:00-18:00), Luxembourg Before The Vulnopticon Conference - Registration

CVE-2022-49645 (GCVE-0-2022-49645)

Vulnerability from cvelistv5 – Published: 2025-02-26 02:23 – Updated: 2026-08-05 08:55
VLAI
Title
drm/panfrost: Fix shrinker list corruption by madvise IOCTL
Summary
In the Linux kernel, the following vulnerability has been resolved: drm/panfrost: Fix shrinker list corruption by madvise IOCTL Calling madvise IOCTL twice on BO causes memory shrinker list corruption and crashes kernel because BO is already on the list and it's added to the list again, while BO should be removed from the list before it's re-added. Fix it.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 013b6510131568ce4e01856d5360bfdfe9c3632f , < 393594aad55179eb761af41533d8d1d6eb4543b0 (git)
Affected: 013b6510131568ce4e01856d5360bfdfe9c3632f , < 0581613df7f9a4c5fac096ce1d5fb15b7b994240 (git)
Affected: 013b6510131568ce4e01856d5360bfdfe9c3632f , < 1807d8867402a58b831a7fc16832747ff559a0d1 (git)
Affected: 013b6510131568ce4e01856d5360bfdfe9c3632f , < f036392edd9c49090781d8cca26ad6557a63bae4 (git)
Affected: 013b6510131568ce4e01856d5360bfdfe9c3632f , < 9fc33eaaa979d112d10fea729edcd2a2e21aa912 (git)
guessed Create a notification for this product.
Linux Linux Affected: 5.4
Unaffected: 0 , < 5.4 (semver)
Unaffected: 5.4.207 , ≤ 5.4.* (semver)
Unaffected: 5.10.132 , ≤ 5.10.* (semver)
Unaffected: 5.15.56 , ≤ 5.15.* (semver)
Unaffected: 5.18.13 , ≤ 5.18.* (semver)
Unaffected: 5.19 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/gpu/drm/panfrost/panfrost_drv.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "393594aad55179eb761af41533d8d1d6eb4543b0",
              "status": "affected",
              "version": "013b6510131568ce4e01856d5360bfdfe9c3632f",
              "versionType": "git"
            },
            {
              "lessThan": "0581613df7f9a4c5fac096ce1d5fb15b7b994240",
              "status": "affected",
              "version": "013b6510131568ce4e01856d5360bfdfe9c3632f",
              "versionType": "git"
            },
            {
              "lessThan": "1807d8867402a58b831a7fc16832747ff559a0d1",
              "status": "affected",
              "version": "013b6510131568ce4e01856d5360bfdfe9c3632f",
              "versionType": "git"
            },
            {
              "lessThan": "f036392edd9c49090781d8cca26ad6557a63bae4",
              "status": "affected",
              "version": "013b6510131568ce4e01856d5360bfdfe9c3632f",
              "versionType": "git"
            },
            {
              "lessThan": "9fc33eaaa979d112d10fea729edcd2a2e21aa912",
              "status": "affected",
              "version": "013b6510131568ce4e01856d5360bfdfe9c3632f",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/gpu/drm/panfrost/panfrost_drv.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.4"
            },
            {
              "lessThan": "5.4",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.4.*",
              "status": "unaffected",
              "version": "5.4.207",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.10.*",
              "status": "unaffected",
              "version": "5.10.132",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.56",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.18.*",
              "status": "unaffected",
              "version": "5.18.13",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "5.19",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.4.207",
                  "versionStartIncluding": "5.4",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.10.132",
                  "versionStartIncluding": "5.4",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.56",
                  "versionStartIncluding": "5.4",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.18.13",
                  "versionStartIncluding": "5.4",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.19",
                  "versionStartIncluding": "5.4",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/panfrost: Fix shrinker list corruption by madvise IOCTL\n\nCalling madvise IOCTL twice on BO causes memory shrinker list corruption\nand crashes kernel because BO is already on the list and it\u0027s added to\nthe list again, while BO should be removed from the list before it\u0027s\nre-added. Fix it."
        }
      ],
      "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 via DRM_IOCTL_PANFROST_MADVISE on a local Panfrost render node (/dev/dri/renderD*), after CREATE_BO; it is not reachable from the network.\nAC:L - An attacker reliably triggers corruption by issuing MADVISE(DONTNEED) twice on the same BO; drm_gem_shmem_madvise still returns retained=true, so list_add_tail runs on an already-linked entry with no race or external conditions.\nPR:L - The ioctl is DRM_RENDER_ALLOW with no capability checks in panfrost_open; unprivileged users can open render nodes (common on Android/ARM Mali devices) and create/madvise BOs.\nUI:N - Exploitation requires only the attacker\u0027s own open/create/madvise ioctls; no victim action is needed.\nS:U - Impact is confined to the local kernel/OS authority (privilege escalation or crash); there is no VM/IOMMU/sandbox boundary crossing.\nC:H - Double list_add_tail corrupts the shrinker list so later free/shrinker walks leave dangling pointers into freed panfrost_gem_object memory, enabling UAF-based arbitrary reads.\nI:H - The same list corruption yields UAF and unsafe list_del unlinks on poisoned prev/next pointers, which are classic kernel arbitrary-write/control-flow primitives.\nA:H - The fix commit documents kernel crashes from the corrupted shrinker list, and UAF/list walks can oops or panic the kernel."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T08:55:54.011Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/393594aad55179eb761af41533d8d1d6eb4543b0"
        },
        {
          "url": "https://git.kernel.org/stable/c/0581613df7f9a4c5fac096ce1d5fb15b7b994240"
        },
        {
          "url": "https://git.kernel.org/stable/c/1807d8867402a58b831a7fc16832747ff559a0d1"
        },
        {
          "url": "https://git.kernel.org/stable/c/f036392edd9c49090781d8cca26ad6557a63bae4"
        },
        {
          "url": "https://git.kernel.org/stable/c/9fc33eaaa979d112d10fea729edcd2a2e21aa912"
        }
      ],
      "title": "drm/panfrost: Fix shrinker list corruption by madvise IOCTL",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2022-49645",
    "datePublished": "2025-02-26T02:23:50.598Z",
    "dateReserved": "2025-02-26T02:21:30.432Z",
    "dateUpdated": "2026-08-05T08:55:54.011Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2022-49645",
      "date": "2026-09-14",
      "epss": "0.00277",
      "percentile": "0.20101"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2022-49645\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2025-02-26T07:01:39.677\",\"lastModified\":\"2026-08-04T10:17:52.850\",\"vulnStatus\":\"Modified\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\ndrm/panfrost: Fix shrinker list corruption by madvise IOCTL\\n\\nCalling madvise IOCTL twice on BO causes memory shrinker list corruption\\nand crashes kernel because BO is already on the list and it\u0027s added to\\nthe list again, while BO should be removed from the list before it\u0027s\\nre-added. Fix it.\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: drm/panfrost: Arreglar la corrupci\u00f3n de la lista de reductores por parte de madvise IOCTL Llamar a madvise IOCTL dos veces en BO provoca corrupci\u00f3n de la lista de reductores de memoria y bloquea el kernel porque BO ya est\u00e1 en la lista y se agrega a la lista nuevamente, mientras que BO deber\u00eda eliminarse de la lista antes de volver a agregarse. Arr\u00e9glalo.\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"drivers/gpu/drm/panfrost/panfrost_drv.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"013b6510131568ce4e01856d5360bfdfe9c3632f\",\"lessThan\":\"393594aad55179eb761af41533d8d1d6eb4543b0\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"013b6510131568ce4e01856d5360bfdfe9c3632f\",\"lessThan\":\"0581613df7f9a4c5fac096ce1d5fb15b7b994240\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"013b6510131568ce4e01856d5360bfdfe9c3632f\",\"lessThan\":\"1807d8867402a58b831a7fc16832747ff559a0d1\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"013b6510131568ce4e01856d5360bfdfe9c3632f\",\"lessThan\":\"f036392edd9c49090781d8cca26ad6557a63bae4\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"013b6510131568ce4e01856d5360bfdfe9c3632f\",\"lessThan\":\"9fc33eaaa979d112d10fea729edcd2a2e21aa912\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"drivers/gpu/drm/panfrost/panfrost_drv.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"5.4\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"5.4\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"5.4.207\",\"lessThanOrEqual\":\"5.4.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"5.10.132\",\"lessThanOrEqual\":\"5.10.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"5.15.56\",\"lessThanOrEqual\":\"5.15.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"5.18.13\",\"lessThanOrEqual\":\"5.18.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"5.19\",\"lessThanOrEqual\":\"*\",\"versionType\":\"original_commit_for_fix\",\"status\":\"unaffected\"}]}]}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H\",\"baseScore\":7.8,\"baseSeverity\":\"HIGH\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":5.9},{\"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:H/I:H/A:H\",\"baseScore\":7.8,\"baseSeverity\":\"HIGH\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":5.9}]},\"weaknesses\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-787\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"5.4\",\"versionEndExcluding\":\"5.4.207\",\"matchCriteriaId\":\"8CDC07B9-0100-43EB-B768-A2AEB8FC17AF\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"5.5\",\"versionEndExcluding\":\"5.10.132\",\"matchCriteriaId\":\"46CE9FE9-22E3-45CA-8B5F-190C2CAFC5CE\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"5.11\",\"versionEndExcluding\":\"5.15.56\",\"matchCriteriaId\":\"AF59CE2F-BA66-4BFD-83AB-4576F3D1B49A\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"5.16\",\"versionEndExcluding\":\"5.18.13\",\"matchCriteriaId\":\"640221A7-96EE-4B48-8FE1-BA810131789B\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:5.19:rc1:*:*:*:*:*:*\",\"matchCriteriaId\":\"A8C30C2D-F82D-4D37-AB48-D76ABFBD5377\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:5.19:rc2:*:*:*:*:*:*\",\"matchCriteriaId\":\"BF8547FC-C849-4F1B-804B-A93AE2F04A92\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:5.19:rc3:*:*:*:*:*:*\",\"matchCriteriaId\":\"F3068028-F453-4A1C-B80F-3F5609ACEF60\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:5.19:rc4:*:*:*:*:*:*\",\"matchCriteriaId\":\"2E9C0DB0-D349-489F-A3D6-B77214E93A8A\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:5.19:rc5:*:*:*:*:*:*\",\"matchCriteriaId\":\"1A0DE3B7-0FFB-45AA-9BD6-19870CA7C6FD\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:5.19:rc6:*:*:*:*:*:*\",\"matchCriteriaId\":\"00AE778B-BAEE-49EB-9F84-003B73D7862A\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/0581613df7f9a4c5fac096ce1d5fb15b7b994240\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/1807d8867402a58b831a7fc16832747ff559a0d1\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/393594aad55179eb761af41533d8d1d6eb4543b0\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/9fc33eaaa979d112d10fea729edcd2a2e21aa912\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/f036392edd9c49090781d8cca26ad6557a63bae4\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]}]}}",
    "redhat_vex": {
      "aggregate_severity": "None",
      "current_release_date": "2026-06-30T10:39:04+00:00",
      "cve": "CVE-2022-49645",
      "id": "CVE-2022-49645",
      "initial_release_date": "2022-01-01T00:00:00+00:00",
      "product_status:known_not_affected": "274",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: drm/panfrost: Fix shrinker list corruption by madvise IOCTL",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2022/cve-2022-49645.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "moderate",
      "current_release_date": "2026-08-29T02:26:39Z",
      "cve": "CVE-2022-49645",
      "id": "CVE-2022-49645",
      "initial_release_date": "2025-02-27T03:03:41Z",
      "product_status:known_affected": "334",
      "product_status:known_not_affected": "371",
      "product_status:recommended": "293",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2022-49645",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2022-49645.json",
      "version": "51"
    }
  }
}



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…

Loading…