{"id":"CVE-2026-72311","state":"PUBLISHED","title":"drm/xe: free madvise VMA array on L2 flush failure","description":"In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/xe: free madvise VMA array on L2 flush failure\n\nxe_vm_madvise_ioctl() allocates madvise_range.vmas in get_vmas().\nAfter get_vmas() succeeds with at least one VMA, error paths must go\nthrough free_vmas so the array is released before the madvise details are\ndestroyed.\n\nThe L2 flush validation path added for PAT madvise rejects some\nSVM/userptr ranges after get_vmas() has succeeded, but jumps directly to\nmadv_fini. This skips kfree(madvise_range.vmas), leaking the VMA array on\neach failed ioctl.\n\nJump to free_vmas instead, matching the other validation failure paths\nafter get_vmas() has succeeded.\n\n(cherry picked from commit c3a1c3579b1250060da73507a4acef712974c78a)","publishedAt":"2026-08-15T05:55:27.164Z","updatedAt":"2026-08-17T05:12:16.211Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"4f39a194d41e6b8cb61a91a7bb01b17be59a7d73","status":"affected","lessThan":"bf126747e7bff55e5ba0b1ec10fc5fce99feaed9","versionType":"git"},{"version":"4f39a194d41e6b8cb61a91a7bb01b17be59a7d73","status":"affected","lessThan":"14abbed336a2d1bbd726c25d148d2ec0ff928073","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/gpu/drm/xe/xe_vm_madvise.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"7.1","status":"affected"},{"version":"0","status":"unaffected","lessThan":"7.1","versionType":"semver"},{"version":"7.1.5","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/gpu/drm/xe/xe_vm_madvise.c"]}],"references":["https://git.kernel.org/stable/c/bf126747e7bff55e5ba0b1ec10fc5fce99feaed9","https://git.kernel.org/stable/c/14abbed336a2d1bbd726c25d148d2ec0ff928073"],"weaknesses":[],"ingestedAt":"2026-10-29T20:12:58.252Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/72xxx/CVE-2026-72311.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-72311","state":"PUBLISHED","datePublished":"2026-08-15T05:55:27.164Z","dateUpdated":"2026-08-17T05:12:16.211Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-08-09T03:40:39.918Z"},"containers":{"cna":{"title":"drm/xe: free madvise VMA array on L2 flush failure","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/xe: free madvise VMA array on L2 flush failure\n\nxe_vm_madvise_ioctl() allocates madvise_range.vmas in get_vmas().\nAfter get_vmas() succeeds with at least one VMA, error paths must go\nthrough free_vmas so the array is released before the madvise details are\ndestroyed.\n\nThe L2 flush validation path added for PAT madvise rejects some\nSVM/userptr ranges after get_vmas() has succeeded, but jumps directly to\nmadv_fini. This skips kfree(madvise_range.vmas), leaking the VMA array on\neach failed ioctl.\n\nJump to free_vmas instead, matching the other validation failure paths\nafter get_vmas() has succeeded.\n\n(cherry picked from commit c3a1c3579b1250060da73507a4acef712974c78a)"}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"4f39a194d41e6b8cb61a91a7bb01b17be59a7d73","status":"affected","lessThan":"bf126747e7bff55e5ba0b1ec10fc5fce99feaed9","versionType":"git"},{"version":"4f39a194d41e6b8cb61a91a7bb01b17be59a7d73","status":"affected","lessThan":"14abbed336a2d1bbd726c25d148d2ec0ff928073","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/gpu/drm/xe/xe_vm_madvise.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"7.1","status":"affected"},{"version":"0","status":"unaffected","lessThan":"7.1","versionType":"semver"},{"version":"7.1.5","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/gpu/drm/xe/xe_vm_madvise.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/bf126747e7bff55e5ba0b1ec10fc5fce99feaed9"},{"url":"https://git.kernel.org/stable/c/14abbed336a2d1bbd726c25d148d2ec0ff928073"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-17T05:12:16.211Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"7.1","versionEndExcluding":"7.1.5"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"7.1","versionEndExcluding":"7.2"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}