CVE-2026-74478 PUBLISHED

um: vector: fix use-after-free in vector_mmsg_rx()

Assigner: Linux
Reserved: 15.08.2026 Published: 15.08.2026 Updated: 15.08.2026

In the Linux kernel, the following vulnerability has been resolved:

um: vector: fix use-after-free in vector_mmsg_rx()

When vector_mmsg_rx() discards a packet whose overlay header fails verify_header(), it frees the skb and continues the loop:

<pre>if (header_check < 0) { dev_kfree_skb_irq(skb); vp->estats.rx_encaps_errors++; continue; } </pre>

The normal and short-packet paths fall through to the bottom of the loop body, which clears the consumed slot and advances the cursors:

<pre>(*skbuff_vector) = NULL; mmsg_vector++; skbuff_vector++; </pre>

The verify_header() < 0 path skips that via continue, so the freed skb is left in skbuff_vector[] and the cursors do not advance. The next iteration reads the same slot, gets the freed skb, and frees it again, producing a refcount underflow / use-after-free in the RX path.

Discard the slot the same way the other paths do before continuing.

Only transports whose verify_header() can return negative are affected: GRE and L2TPv3 do so on a cookie/session-id mismatch (raw/tap do not), so any peer on such a transport can trigger it without authentication.

Product Status

Vendor Linux
Product Linux
Versions Default: unaffected
  • affected from 49da7e64f33e80edffb1a9eeb230fa4c3f42dffb to 4b9601595e8b6b5d18878cac0aeabc687d241111 (excl.)
  • affected from 49da7e64f33e80edffb1a9eeb230fa4c3f42dffb to 67d58ab4f2ccf7145f3da07e025735a09c79de1b (excl.)
  • affected from 49da7e64f33e80edffb1a9eeb230fa4c3f42dffb to 180ff4c81faf01ec4e06082c9daa7c40518ead89 (excl.)
  • affected from 49da7e64f33e80edffb1a9eeb230fa4c3f42dffb to 804b681002ead233abf49a3efd681f5468a835f9 (excl.)
  • affected from 49da7e64f33e80edffb1a9eeb230fa4c3f42dffb to af421e9aed3920c7ac88c24daa48606c7112feca (excl.)
Vendor Linux
Product Linux
Versions Default: affected
  • Version 4.17 is affected
  • unaffected from 0 to 4.17 (excl.)
  • unaffected from 6.6.151 to 6.6.* (incl.)
  • unaffected from 6.12.103 to 6.12.* (incl.)
  • unaffected from 6.18.44 to 6.18.* (incl.)
  • unaffected from 7.1.8 to 7.1.* (incl.)
  • unaffected from 7.2-rc6 to * (incl.)

References