CVE-2026-64099 in Linux
Zusammenfassung
von VulDB • 20.07.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
drm/v3d: Behebung eines Use-After-Free bei CPU-Job-Abfragearrays im Fehlerpfad
Das Fail-Label des CPU-Job-ioctls ruft kvfree() für die Zeitstempel- und Leistungsabfragearrays von cpu_job nach v3d_job_cleanup() auf, wodurch der letzte Verweis auf den Job freigegeben wird und cpu_job selbst freigegeben wird. Das Lesen von cpu_job zu diesem Zeitpunkt stellt ein Use-After-Free dar. Außerdem handelt es sich im Fehlerpfad des frühen Aufrufs von v3d_job_init() um eine NULL-Dereferenzierung, da v3d_job_deallocate() den lokalen Zeiger auf Null setzt.
Im Erfolgsfall werden die Arrays über den .free_job-Rückruf des Schedulers freigegeben; im Fehlerpfad hingegen manuell, da der Job niemals an den Scheduler übergeben wurde. Während der Erfolgsfehler diesen Fall korrekt behandelt, tut dies der Fail-Pfad nicht.
Darüber hinaus geben die manuellen kvfree()-Aufrufe nur den Array-Speicher frei; sie rufen drm_syncobj_put() für die pro Abfrage vorhandenen Syncobjs nicht auf, die v3d_timestamp_query_info_free() und v3d_performance_query_info_free() im Erfolgsfall freigeben. Der gleiche Fail-Pfad, der das Use-After-Free auslöst, führt daher auch zu einem Leak eines syncobj-Verweises pro Abfrage.
Die Aufräumarbeiten des CPU-Jobs werden vereinheitlicht und in den kref-Zerstörer (Destructor) des CPU-Jobs integriert, analog zu v3d_render_job_free(). Die .free_job-Slot des Schedulers kehrt zum generischen v3d_sched_job_free() zurück, und das Fail-Label entfernt die manuellen kvfree()-Aufrufe. Dadurch verbleibt ein einziger Aufräumpfad, der sowohl vom Scheduler als auch vom ioctl-Fehlerpfad erreicht wird. Dies beseitigt durch Konstruktion das Use-After-Free, die NULL-Dereferenzierung sowie den syncobj-Leak.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.