CVE-2026-68228 in the wave5 V4L2 encoder driver exposes a race condition that is less about one driver's bug and more about a structural mismatch inherited across the v4l2 memory-to-memory subsystem. The vulnerability lives in the gap between when hardware completion interrupts signal buffer done status and when the driver removes buffers from the m2m ready queue. Wave5 split these operations: IRQ handling called v4l2_m2m_buf_done (marking the buffer DONE), but removal from the ready queue happened separately in start_encode. This created a window where userspace could re-queue the same buffer, and when start_encode's __list_add executed, it corrupted the linked list into a self-loop — turning what should be deferred pointer poisoning into active list corruption.

The v4l2 m2m framework treats buffer completion and queue management as separate state transitions, but hardware interrupt handlers introduce asynchrony that breaks this model. Wave5 followed patterns common across the subsystem — this is not an isolated deviation. The fix moves buffer removal entirely to finish_encode, collapsing the timing window, but this addresses the symptom in one driver rather than the architectural condition producing it. The deeper issue is that the framework exposes hardware completion events as if they were synchronous with queue state, and every driver inheriting that pattern is making the same bet on timing — just with different interrupt latencies determining whether corruption actually triggers.

This pattern has appeared before in sh_veu and coda driver families, patched by collapsing windows rather than refactoring the underlying state machine. The __list_del poisoning defense assumes list operations are atomic and sequential — a model the m2m async boundary breaks structurally. Check your other m2m drivers for the same split between v4l2_m2m_buf_done calls and list removal operations across async boundaries. The wave5 fix is correct for wave5, but the broader remediation is auditing every driver that inherited this pattern before the next CVE surfaces.