Description
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.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
3a0af8fd61f90920f6fa04e4f1e9a6a73c1b4fd2 to < 67f8f2bae8e7ac72e09def2b667e44704c4d1ee1affected3a0af8fd61f90920f6fa04e4f1e9a6a73c1b4fd2 to < a97f221651fcdc891166e9bc270e3d9bfa5a0080affected3a0af8fd61f90920f6fa04e4f1e9a6a73c1b4fd2 to < e3f647e4b642f9f6d32795a16f92c116c138d2afaffected3a0af8fd61f90920f6fa04e4f1e9a6a73c1b4fd2 to < 065d5f17096ec9161180e2c890afdff4dc6125f2affected3a0af8fd61f90920f6fa04e4f1e9a6a73c1b4fd2 to < d68c17402442f5f494a2c3ebde5cb82f6aa9160aaffected3a0af8fd61f90920f6fa04e4f1e9a6a73c1b4fd2 to < 65583f9e070db7bece20710cfa2e3daeb0b831d9affected3a0af8fd61f90920f6fa04e4f1e9a6a73c1b4fd2 to < 29b22badb7a84b783e3a4fffca16f7768fb31205affected
Linux Linux
Default version status: affected
4.10affected0 to < 4.10unaffected5.4.257 to ≤ 5.4.*unaffected5.10.195 to ≤ 5.10.*unaffected5.15.132 to ≤ 5.15.*unaffected6.1.53 to ≤ 6.1.*unaffected6.4.16 to ≤ 6.4.*unaffected6.5.3 to ≤ 6.5.*unaffected6.6 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/67f8f2bae8e7ac72e09def2b667e44704c4d1ee1 ↗
- https://git.kernel.org/stable/c/a97f221651fcdc891166e9bc270e3d9bfa5a0080 ↗
- https://git.kernel.org/stable/c/e3f647e4b642f9f6d32795a16f92c116c138d2af ↗
- https://git.kernel.org/stable/c/065d5f17096ec9161180e2c890afdff4dc6125f2 ↗
- https://git.kernel.org/stable/c/d68c17402442f5f494a2c3ebde5cb82f6aa9160a ↗
- https://git.kernel.org/stable/c/65583f9e070db7bece20710cfa2e3daeb0b831d9 ↗
- https://git.kernel.org/stable/c/29b22badb7a84b783e3a4fffca16f7768fb31205 ↗