AZL-111128: CVE-2026-99095 affecting package kernel 6.6.157.1-1
In the Linux kernel, the following vulnerability has been resolved:
drm/vc4: drain the hangcheck timer and works on V3D unbind
Nothing stops the hangcheck timer that submitted jobs arm, or the jobdonework that the render-done interrupt queues, at teardown: vc4irqdisable() cancels only overflowmemwork, and vc4gemdestroy() runs from the drm-managed release, after vc4v3dunbind() has already uninstalled the V3D interrupt and cleared vc4->v3d. A timer still armed by then reads V3D registers through the NULL vc4->v3d pointer, and the late callbacks run on the vc4dev embedding them after it has been freed.
Drain them in vc4v3dunbind(): shut the timer down and cancel resetwork before the interrupt is taken down, because its vc4irqreset() re-enables it, then flush jobdonework so that completions queued at teardown still release their jobs.
This issue was found by an in-house static analysis tool.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Compensating control
In vc4_v3d_unbind(), shut down and cancel the hangcheck timer, cancel or flush reset_work before taking down the V3D interrupt, and flush job_done_work so teardown callbacks cannot access the cleared vc4->v3d pointer.