{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2022-49645","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","state":"PUBLISHED","assignerShortName":"Linux","dateReserved":"2025-02-26T02:21:30.432Z","datePublished":"2025-02-26T02:23:50.598Z","dateUpdated":"2026-08-05T08:55:54.011Z"},"containers":{"cna":{"providerMetadata":{"orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux","dateUpdated":"2026-08-05T08:55:54.011Z"},"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's added to\nthe list again, while BO should be removed from the list before it's\nre-added. Fix it."}],"metrics":[{"cvssV3_1":{"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"},"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's 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."}]}],"affected":[{"product":"Linux","vendor":"Linux","defaultStatus":"unaffected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/gpu/drm/panfrost/panfrost_drv.c"],"versions":[{"version":"013b6510131568ce4e01856d5360bfdfe9c3632f","lessThan":"393594aad55179eb761af41533d8d1d6eb4543b0","status":"affected","versionType":"git"},{"version":"013b6510131568ce4e01856d5360bfdfe9c3632f","lessThan":"0581613df7f9a4c5fac096ce1d5fb15b7b994240","status":"affected","versionType":"git"},{"version":"013b6510131568ce4e01856d5360bfdfe9c3632f","lessThan":"1807d8867402a58b831a7fc16832747ff559a0d1","status":"affected","versionType":"git"},{"version":"013b6510131568ce4e01856d5360bfdfe9c3632f","lessThan":"f036392edd9c49090781d8cca26ad6557a63bae4","status":"affected","versionType":"git"},{"version":"013b6510131568ce4e01856d5360bfdfe9c3632f","lessThan":"9fc33eaaa979d112d10fea729edcd2a2e21aa912","status":"affected","versionType":"git"}]},{"product":"Linux","vendor":"Linux","defaultStatus":"affected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/gpu/drm/panfrost/panfrost_drv.c"],"versions":[{"version":"5.4","status":"affected"},{"version":"0","lessThan":"5.4","status":"unaffected","versionType":"semver"},{"version":"5.4.207","lessThanOrEqual":"5.4.*","status":"unaffected","versionType":"semver"},{"version":"5.10.132","lessThanOrEqual":"5.10.*","status":"unaffected","versionType":"semver"},{"version":"5.15.56","lessThanOrEqual":"5.15.*","status":"unaffected","versionType":"semver"},{"version":"5.18.13","lessThanOrEqual":"5.18.*","status":"unaffected","versionType":"semver"},{"version":"5.19","lessThanOrEqual":"*","status":"unaffected","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.4","versionEndExcluding":"5.4.207"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.4","versionEndExcluding":"5.10.132"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.4","versionEndExcluding":"5.15.56"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.4","versionEndExcluding":"5.18.13"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.4","versionEndExcluding":"5.19"}]}]}],"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"}}}}