CVE-2026-74478 is a use-after-free in the kernel's vector transport layer (specifically in the packet_vector receive path) that manifests when GRE or L2TPv3 transports are used. The bug lives in the receive loop where packets are processed: when verify_header() returns a negative value indicating the packet should be discarded, the code executes a continue to skip to the next iteration—but this bypasses the cleanup logic that sets the skbuff slot to NULL. The subsequent iteration then operates on a stale pointer, causing the use-after-free.

The root cause is structural, not cognitive. The developer correctly understood that every loop iteration must clear the slot and advance the cursor, and placed that logic at the loop body's natural end. When adding error handling for header verification failure, continue felt like the natural way to express