CVE Catalog

CVE-2026-89867

Unknown
Published: Translated: NVD NIST

Summary

In the Linux kernel, the media chips-media wave5 driver's device_run() defers job_finish() even when no DEC_PIC was queued, leaking the shared v4l2_m2m job slot. This stalls all decoder instances at EOS, e.g. in GStreamer.

Risk Assessment

The shared job slot leak blocks all decoder instances sharing the same VPU, causing video processing hangs. It affects systems with parallel v4l2h264dec instances.

Recommendation

Update the Linux kernel to a version containing the fix that tracks whether a DEC_PIC was actually queued (cmd_issued). Until patched, avoid running multiple wave5 decoder instances in parallel.

Other vulnerabilities in Linux kernel

See all
Original NVD description (English source)

In the Linux kernel, the following vulnerability has been resolved: media: chips-media: wave5: Defer job_finish() only when a DEC_PIC was queued Decoder instances sharing a VPU also share one v4l2_m2m job slot, released when the running context calls v4l2_m2m_job_finish(). While draining, device_run() defers job_finish() once EOS is sent (sent_eos), expecting a later finish_decode() (from a DEC_PIC completion IRQ) to release the slot. But the m2m core checks job_ready() only when a job is queued, not when it is dispatched. A job queued while draining can run after finish_decode() has already moved the instance to STOP and sent EOS. device_run() then runs in STOP, issues no DEC_PIC, yet still skips job_finish() - so no IRQ, no finish_decode(), and the shared slot is leaked, stalling every instance. With several v4l2h264dec instances in parallel, GStreamer hangs at EOS. Track whether the run actually queued a DEC_PIC (cmd_issued) and defer job_finish() only then. Otherwise finish the job immediately

Vulnerability data from NVD (NIST) · CISA KEV · EPSS