# CVE-2026-64590: dma-buf/udmabuf: skip redundant cpu sync to fix cacheline EEXIST warning

> A kernel bug in udmabuf causes spurious warnings and potential instability when importing buffers with DMA debug enabled, requiring a patch to suppress redundant CPU syncs.

- **Severity:** Not scored
- **Exploited in the wild:** Not known
- **Login needed:** Not needed
- **Attackable:** Local or same network only
- **Victim action needed:** Not needed
- **Fix available:** Yes
- **Published:** 6 Aug 2026
- **Updated:** 23 Aug 2026
- **Also known as:** AZL-94538, BELL-CVE-2026-64590, DEBIAN-CVE-2026-64590, GHSA-j99r-j84h-cmw8, UBUNTU-CVE-2026-64590

## What is CVE-2026-64590?

CVE-2026-64590 is a denial of service vulnerability in Linux, published on 6 Aug 2026. It can only be exploited from the same machine or local network, with no action from the victim.

### Official description

In the Linux kernel, the following vulnerability has been resolved:

dma-buf/udmabuf: skip redundant cpu sync to fix cacheline EEXIST warning

When CONFIG_DMA_API_DEBUG_SG is enabled, importing a udmabuf into a DRM
driver (e.g. amdgpu for video playback in GNOME Videos / Showtime)
triggers a spurious warning:

  DMA-API: amdgpu 0000:03:00.0: cacheline tracking EEXIST, \
      overlapping mappings aren't supported
  WARNING: kernel/dma/debug.c:619 at add_dma_entry+0x473/0x5f0

The call chain is:

  amdgpu_cs_ioctl
   -> amdgpu_ttm_backend_bind
    -> dma_buf_map_attachment
     -> [udmabuf] map_udmabuf -> get_sg_table
      -> dma_map_sgtable(dev, sg, direction, 0)  // attrs=0
       -> debug_dma_map_sg -> add_dma_entry -> EEXIST

This happens because udmabuf builds a per-page scatter-gather list via
sg_set_folio().  When begin_cpu_udmabuf() has already created an sg
table mapped for the misc device, and an importer such as amdgpu maps
the same pages for its own device via map_udmabuf(), the DMA debug
infrastructure sees two active mappings whose physical addresses share
cacheline boundaries and warns about the overlap.

The DMA_ATTR_SKIP_CPU_SYNC flag suppresses this check in
add_dma_entry() because it signals that no CPU cache maintenance is
performed at map/unmap time, making the cacheline overlap harmless.

All other major dma-buf exporters already pass this flag:
  - drm_gem_map_dma_buf() passes DMA_ATTR_SKIP_CPU_SYNC
  - amdgpu_dma_buf_map() passes DMA_ATTR_SKIP_CPU_SYNC

The CPU sync at map/unmap time is also redundant for udmabuf:
begin_cpu_udmabuf() and end_cpu_udmabuf() already perform explicit
cache synchronization via dma_sync_sgtable_for_cpu/device() when CPU
access is requested through the dma-buf interface.

Pass DMA_ATTR_SKIP_CPU_SYNC to dma_map_sgtable() and
dma_unmap_sgtable() in udmabuf to suppress the spurious warning and
skip the redundant sync.

## Which versions are affected by CVE-2026-64590?


## How do I fix CVE-2026-64590?

Apply the vendor's patch.

## Is CVE-2026-64590 being exploited?

There is no known exploitation of CVE-2026-64590 in the wild and no public exploit code.

## Fix prompt for AI coding agents

```text
Check this codebase for CVE-2026-64590 and fix it if it is affected.

What it is: CVE-2026-64590 is a denial of service vulnerability in Linux, published on 6 Aug 2026. It can only be exploited from the same machine or local network, with no action from the victim.
Exploitation: There is no known exploitation of CVE-2026-64590 in the wild and no public exploit code.

Affected product: Linux. No package-level version data is available, so check the vendor advisory linked from the reference page.

Task:
1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.
2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.
3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.
4. Run the tests and summarise what changed and why.
5. If nothing in the project is affected, say so and change nothing.

Reference: https://insights.sbomify.com/CVE-2026-64590/ (Markdown: https://insights.sbomify.com/CVE-2026-64590/index.md)
```

## Sources

- CVE record: https://www.cve.org/CVERecord?id=CVE-2026-64590
- NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-64590
- OSV: https://osv.dev/vulnerability/CVE-2026-64590

---
From sbomify Insights: https://insights.sbomify.com/CVE-2026-64590/
Summaries are generated and may contain mistakes; the official description above is the record.
