{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2025-40276","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","state":"PUBLISHED","assignerShortName":"Linux","dateReserved":"2025-04-16T07:20:57.184Z","datePublished":"2025-12-06T21:50:59.035Z","dateUpdated":"2026-08-05T12:09:08.824Z"},"containers":{"cna":{"providerMetadata":{"orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux","dateUpdated":"2026-08-05T12:09:08.824Z"},"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/panthor: Flush shmem writes before mapping buffers CPU-uncached\n\nThe shmem layer zeroes out the new pages using cached mappings, and if\nwe don't CPU-flush we might leave dirty cachelines behind, leading to\npotential data leaks and/or asynchronous buffer corruption when dirty\ncachelines are evicted."}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:H","baseScore":7.3,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:L - Exploitation requires local access to the DRM render node (`/dev/dri/renderD*`) via the PANTHOR_BO_CREATE / BO_MMAP_OFFSET ioctls and a subsequent mmap(). There is no remote or adjacent-network path to panthor GEM allocation.\nAC:L - The mechanism is deterministic, not a race: on non-coherent arm64 SoCs (all real panthor platforms) the zeroing is never flushed, so a WC mapping reliably reads stale DRAM, and the write-back clobber can be forced on demand by triggering `dma_map_sgtable()` via VM_BIND. No memory-layout grooming or timing window outside the attacker's control is needed.\nPR:L - All required ioctls are marked DRM_RENDER_ALLOW, so no authentication, DRM master status, or capability is checked — only an open fd on the render node. That is available to any unprivileged local user on a graphics-enabled system and to every app on Android/embedded Mali devices.\nUI:N - The attacker performs every step itself — open the render node, create the BO, obtain the mmap offset, mmap and read. No victim action or cooperation is required.\nS:U - The disclosure and corruption occur within the kernel/GPU-driver security authority acting on behalf of the calling process; no VM, IOMMU, or sandbox boundary is crossed by the flaw itself.\nC:H - Reads through the uncached mapping return residual physical DRAM contents from pages recycled by the buddy allocator, which may hold freed kernel data, page-cache contents, other processes' memory, or key material. The leak is unbounded in volume and arbitrarily repeatable by allocating large BOs in a loop, amounting to a general physical-memory disclosure primitive.\nI:L - Stale dirty cachelines are written back over data placed in the buffer through the uncached mapping, silently corrupting GPU command streams, descriptors, and compute results. The corruption is real and attacker-triggerable but is confined to the buffer's own pages and its content is not attacker-chosen, so it is not an arbitrary cross-domain write.\nA:H - A corrupted command stream raises CS_FATAL/CS_UNRECOVERABLE or a progress timeout, both of which call `panthor_device_schedule_reset()` and force a device-wide GPU reset that destroys every context on the system, not just the attacker's. On the phone, automotive, and embedded devices panthor targets, the GPU drives the display, so a locally repeatable reset storm denies graphics service to all users."}]}],"affected":[{"product":"Linux","vendor":"Linux","defaultStatus":"unaffected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/gpu/drm/panthor/panthor_gem.c"],"versions":[{"version":"8a1cc07578bf42d85f008316873d710ff684dd29","lessThan":"8355eea2a2e9c323021dfdcb95d7767d382123c4","status":"affected","versionType":"git"},{"version":"8a1cc07578bf42d85f008316873d710ff684dd29","lessThan":"7a12f9c96d06b145562f76ffb20369b4692f0911","status":"affected","versionType":"git"},{"version":"8a1cc07578bf42d85f008316873d710ff684dd29","lessThan":"576c930e5e7dcb937648490611a83f1bf0171048","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/panthor/panthor_gem.c"],"versions":[{"version":"6.10","status":"affected"},{"version":"0","lessThan":"6.10","status":"unaffected","versionType":"semver"},{"version":"6.12.64","lessThanOrEqual":"6.12.*","status":"unaffected","versionType":"semver"},{"version":"6.17.9","lessThanOrEqual":"6.17.*","status":"unaffected","versionType":"semver"},{"version":"6.18","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":"6.10","versionEndExcluding":"6.12.64"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.10","versionEndExcluding":"6.17.9"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.10","versionEndExcluding":"6.18"}]}]}],"references":[{"url":"https://git.kernel.org/stable/c/8355eea2a2e9c323021dfdcb95d7767d382123c4"},{"url":"https://git.kernel.org/stable/c/7a12f9c96d06b145562f76ffb20369b4692f0911"},{"url":"https://git.kernel.org/stable/c/576c930e5e7dcb937648490611a83f1bf0171048"}],"title":"drm/panthor: Flush shmem writes before mapping buffers CPU-uncached","x_generator":{"engine":"bippy-1.2.0"}}}}