The airoha_npu_send_msg() vulnerability stems from a semantic mismatch between what the API implied and what its DMA mapping actually did. The function name suggests bidirectional communication—send a message, receive a response into the same buffer—but the implementation used DMA_TO_DEVICE exclusively, telling the DMA subsystem the CPU was the sole data producer. On non-coherent hardware, this meant cache invalidation was skipped after the NPU wrote its response, leaving stale data in the buffer for the subsequent memcpy() to read. The bug manifested as probabilistic data corruption precisely because the small buffer size (roughly 24 bytes) meant the stale cache line had a high probability of surviving until the read operation.

This is not merely a developer choosing the wrong flag. The real failure is that DMA_TO_DEVICE encodes a data-flow metaphor—data moving toward hardware—that has no inherent connection to cache coherency semantics. Choosing a flag based on the direction data is traveling inadvertently opts out of cache invalidation on non-coherent systems. The naming creates a cognitive trap that catches developers who reason about their code's intent rather than its hardware interaction. The fix (DMA_BIDIRECTIONAL) is trivial, but it masks a deeper problem: this exact pattern has recurred across vendor drivers for years—ath9k, MediaTek wireless, USB gadgets—and the fixes look mechanically identical. The institutional memory exists in scattered commit messages but has never produced a linter rule, audit tool, or review checklist that would catch it proactively.

The structural reality is that most code reviewers work on cache-coherent hardware. The flag mismatch would never surface in their environment regardless of review thoroughness—no test failure, no warning, no observable symptom. The EN7581's non-coherent NPU DMA path was almost certainly untested in upstream CI because the hardware configuration required to trigger this bug wasn't part of standard testing pipelines. Vendor-maintained drivers like airoha live in this testing blind spot: developers write code correct for their reference platform, it ships, and the bug only surfaces in production on specific non-coherent configurations that nobody exercised.

The exposure window likely spans years. The non-coherent path was present long before anyone noticed, meaning network statistics, QoS decisions, or connection state could have been silently corrupted without any observable fault. That's the blast radius: far beyond the DMA layer into the network stack's data plane, where corrupted PPE statistics could misroute traffic or poison state without triggering any traditional error path.

For defenders: verify any driver using DMA_TO_DEVICE or DMA_FROM_DEVICE where the same buffer is reused for both send and response operations—this is the anti-pattern. Check vendor drivers for non-coherent ARM platforms (EN7581 and similar) specifically. The DMA_BIDIRECTIONAL fix should be applied, but more importantly, treat this CVE as a signal to audit similar patterns across the vendor driver ecosystem. The question isn't whether other drivers contain analogous mismatches—it's how many are still undiscovered because nobody has tested them on non-coherent hardware.