Critical · published September 17, 2025
In the Linux kernel, the following vulnerability has been resolved:
lwt: Fix return values of BPF xmit ops
BPF encap ops can return different types of positive values, such like
NET_RX_DROP, NET_XMIT_CN, NETDEV_TX_BUSY, and so on, from function
skb_do_redirect and bpf_lwt_xmit_reroute. At the xmit hook, such return
values would be treated implicitly as LWTUNNEL_XMIT_CONTINUE in
ip(6)_finish_output2. When this happens, skbs that have been freed would
continue to the neighbor subsystem, causing use-after-free bug and
kernel crashes.
To fix the incorrect behavior, skb_do_redirect return values can be
simply discarded, the same as tc-egress behavior. On the other hand,
bpf_lwt_xmit_reroute returns useful errors to local senders, e.g. PMTU
information. Thus convert its return values to avoid the conflict with
LWTUNNEL_XMIT_CONTINUE.
| Product | Versions | Fixed in |
|---|---|---|
| linux/linux_kernel | ≥ 4.10, < 5.4.257 | 5.4.257 |
| linux/linux_kernel | ≥ 5.5, < 5.10.195 | 5.10.195 |
| linux/linux_kernel | ≥ 5.11, < 5.15.132 | 5.15.132 |
| linux/linux_kernel | ≥ 5.16, < 6.1.53 | 6.1.53 |
| linux/linux_kernel | ≥ 6.2, < 6.4.16 | 6.4.16 |
| linux/linux_kernel | ≥ 6.5, < 6.5.3 | 6.5.3 |