CVE-2026-98180 in Linux
Zusammenfassung
von VulDB • 06.10.2026
Im Linux-Kernel wurde die folgende Schwachstelle behoben:
drm/msm: RCU-freie Freigabe der Scheduler-enthaltenden Ringpuffer und VM-Objekte
Sowohl struct msm_ringbuffer als auch struct msm_gem_vm enthalten eine struct drm_gpu_scheduler. Die Funktionen msm_ringbuffer_destroy() sowie der VM-Frei-Gabecallback msm_gem_vm_free() rufen drm_sched_fini() für den eingebetteten Scheduler auf und geben das umgebende Objekt anschließend mit normalem kfree() frei.
drm_sched_fence_get_timeline_name() gibt fence->sched->name zurück, und der Scheduler-Zaun (fence) behält einen .release-Callback bei, sodass er beim Signalisieren nicht ops-getrennt wird. Ein an den Benutzerbereich exportierter abgeschlossener Zaun (der Submit-Out-Zaun oder ein VM_BIND-Zaun über sync_file / drm_syncobj) zeigt weiterhin auf den eingebetteten Scheduler, nachdem der Ring/die VM bereits freigegeben wurde. Daher führt ein späterer Aufruf von get_timeline_name() – der durch SYNC_IOC_FILE_INFO auch für nicht privilegierte Benutzer erreichbar ist – zu einem Dereferenzieren von freigem Slab-Speicher (KASAN slab-use-after-free read).
Gemäß dem dma-fence-Lebenszyklus-Vertrag muss der Exporteur die Daten, die einen signalisierten Zaun stützen, über eine RCU-Gnadenfrist hinweg am Leben erhalten. Geben Sie die Scheduler-enthaltenden Objekte stattdessen mit kfree_rcu() statt mit kfree() frei.
Patchwork: https://patchwork.freedesktop.org/patch/750234/
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.