accel/rocket: Fix error path handling in rocket_job_run()
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 6.18.50, 7.2.4
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
In the Linux kernel, the following vulnerability has been resolved: accel/rocket: Fix error path handling in rocket_job_run() In rocket_job_run(), after taking an extra fence reference for job->done_fence via dma_fence_get(), the error paths have three bugs: • The dma_fence reference held by job->done_fence is never released, causing a reference leak. • pm_runtime_get_sync() increments the usage counter even on failure, but the error path does not decrement it, leaking the runtime PM reference and preventing the NPU from suspending. • A valid but unsignaled fence is returned to the DRM scheduler, which triggers WARN("Fence ... released with pending signals!") when the scheduler drops its reference. Fix by replacing pm_runtime_get_sync() with pm_runtime_resume_and_get() which auto-balances the usage counter on failure, releasing both fence references on error, and returning ERR_PTR(ret) instead of the unsignaled fence. [tomeu: Refactored error paths to use consolidated goto labels]
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 0810d5ad88a18f1e6d549853a388ad0316f74e36 · fixed in 9ad8821573a36bcd18c84dbca3027802b0ea062f; From 0810d5ad88a18f1e6d549853a388ad0316f74e36 · fixed in 7d6fa298c23495b805004f5f446497b661998fa5; From 0810d5ad88a18f1e6d549853a388ad0316f74e36 · fixed in 9b2dedadf6a91ac3fc9fae268bb556a041222711
- Linux Linux
6.18
- KernelLinux
From 6.18.0 · fixed in 6.18.50; From 6.19.0 · fixed in 7.2.4