CVE-2026-64590 in Linux
Zusammenfassung
von VulDB • 06.08.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
dma-buf/udmabuf: Redundante CPU-Synchronisierung überspringen, um die EEXIST-Warnung für Cachelines zu beheben
Wenn CONFIG_DMA_API_DEBUG_SG aktiviert ist, löst das Importieren eines udmabuf in einen DRM-Treiber (z. B. amdgpu für die Videowiedergabe in GNOME Videos / Showtime) eine falsche Warnung aus:
DMA-API: amdgpu 0000:03:00.0: Cacheline-Tracking EEXIST, \ überlappende Abbildungen werden nicht unterstützt WARNING: kernel/dma/debug.c:619 in add_dma_entry+0x473/0x5f0
Die Aufrufkette ist folgende:
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
Dies geschieht, weil udmabuf eine pro-Seite Scatter-Gather-Liste über sg_set_folio() aufbaut. Wenn begin_cpu_udmabuf() bereits eine für das Misc-Gerät abgebildete SG-Tabelle erstellt hat und ein Importeur wie amdgpu dieselben Seiten für sein eigenes Gerät über map_udmabuf() abbildet, erkennt die DMA-Debug-Infrastruktur zwei aktive Abbildungen, deren physikalische Adressen Cacheline-Grenzen teilen, und warnt vor der Überlappung.
Das Flag DMA_ATTR_SKIP_CPU_SYNC unterdrückt diese Überprüfung in add_dma_entry(), da es signalisiert, dass zum Zeitpunkt des Map/Unmap keine CPU-Cache-Wartung durchgeführt wird, wodurch die Cacheline-Überlappung harmlos ist.
Alle anderen wichtigen dma-buf-Exporter übergeben dieses Flag bereits: - drm_gem_map_dma_buf() übergibt DMA_ATTR_SKIP_CPU_SYNC - amdgpu_dma_buf_map() übergibt DMA_ATTR_SKIP_CPU_SYNC
Die CPU-Synchronisierung zum Zeitpunkt des Map/Unmap ist für udmabuf ebenfalls redundant: begin_cpu_udmabuf() und end_cpu_udmabuf() führen bereits eine explizite Cache-Synchronisierung über dma_sync_sgtable_for_cpu/device() durch, wenn der CPU-Zugriff über die dma-buf-Schnittstelle angefordert wird.
Übergabe von DMA_ATTR_SKIP_CPU_SYNC an dma_map_sgtable() und dma_unmap_sgtable() in udmabuf, um die falsche Warnung zu unterdrücken und die redundante Synchronisierung zu überspringen.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.