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
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
ubuntu/linux-hwe-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42~24.04.1 - Upgrade
Upgrade
ubuntu/linux-riscv-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1~24.04.1 - Upgrade
Upgrade
ubuntu/linuxto a version that resolves this vulnerability.Fixed in 7.0.0-42.42 - Upgrade
Upgrade
ubuntu/linux-awsto a version that resolves this vulnerability.Fixed in 7.0.0-1016.17 - Upgrade
Upgrade
ubuntu/linux-gcpto a version that resolves this vulnerability.Fixed in 7.0.0-1016.18 - Upgrade
Upgrade
ubuntu/linux-ibmto a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oem-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oracleto a version that resolves this vulnerability.Fixed in 7.0.0-1015.16 - Upgrade
Upgrade
ubuntu/linux-riscvto a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1
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.