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.
Product status
3a0af8fd61f90920f6fa04e4f1e9a6a73c1b4fd2 (git) before 67f8f2bae8e7ac72e09def2b667e44704c4d1ee1
3a0af8fd61f90920f6fa04e4f1e9a6a73c1b4fd2 (git) before a97f221651fcdc891166e9bc270e3d9bfa5a0080
3a0af8fd61f90920f6fa04e4f1e9a6a73c1b4fd2 (git) before e3f647e4b642f9f6d32795a16f92c116c138d2af
3a0af8fd61f90920f6fa04e4f1e9a6a73c1b4fd2 (git) before 065d5f17096ec9161180e2c890afdff4dc6125f2
3a0af8fd61f90920f6fa04e4f1e9a6a73c1b4fd2 (git) before d68c17402442f5f494a2c3ebde5cb82f6aa9160a
3a0af8fd61f90920f6fa04e4f1e9a6a73c1b4fd2 (git) before 65583f9e070db7bece20710cfa2e3daeb0b831d9
3a0af8fd61f90920f6fa04e4f1e9a6a73c1b4fd2 (git) before 29b22badb7a84b783e3a4fffca16f7768fb31205
4.10
Any version before 4.10
5.4.257 (semver)
5.10.195 (semver)
5.15.132 (semver)
6.1.53 (semver)
6.4.16 (semver)
6.5.3 (semver)
6.6 (original_commit_for_fix)
References
git.kernel.org/...c/67f8f2bae8e7ac72e09def2b667e44704c4d1ee1
git.kernel.org/...c/a97f221651fcdc891166e9bc270e3d9bfa5a0080
git.kernel.org/...c/e3f647e4b642f9f6d32795a16f92c116c138d2af
git.kernel.org/...c/065d5f17096ec9161180e2c890afdff4dc6125f2
git.kernel.org/...c/d68c17402442f5f494a2c3ebde5cb82f6aa9160a
git.kernel.org/...c/65583f9e070db7bece20710cfa2e3daeb0b831d9
git.kernel.org/...c/29b22badb7a84b783e3a4fffca16f7768fb31205