CVE-2026-89976: accel/ethosu: fix job completion fence cleanup
In the Linux kernel, the following vulnerability has been resolved:
accel/ethosu: fix job completion fence cleanup
ethosuioctlsubmitjob() allocates donefence before validating buffer handles. Errors after allocation call ethosujoberrcleanup(), which frees the job but leaks the uninitialized fence.
A scheduler dependency error also lets ethosujobrun() return before dmafenceinit(). Normal cleanup then passes a zeroed refcount to dmafenceput().
Release donefence in the common cleanup path and use dmafencewasinitialized() to distinguish initialized fences from raw allocations.
[robh: also fix goto]
Affected Software
Event History
Frequently Asked Questions
What conditions trigger the faulty cleanup paths?
One path is triggered when job submission allocates done_fence and then buffer-handle validation fails. Another occurs when a scheduler dependency error causes ethosu_job_run() to return before dma_fence_init() has initialized the fence.
What is the impact of these error paths?
The buffer-validation error path can leak an uninitialized fence when the job is freed. The scheduler dependency error path can cause normal cleanup to call dma_fence_put() on a fence with a zeroed reference count.