• Florian Westphal's avatar
    tunnels: fix kasan splat when generating ipv4 pmtu error · 6a7ac3d2
    Florian Westphal authored
    If we try to emit an icmp error in response to a nonliner skb, we get
    
    BUG: KASAN: slab-out-of-bounds in ip_compute_csum+0x134/0x220
    Read of size 4 at addr ffff88811c50db00 by task iperf3/1691
    CPU: 2 PID: 1691 Comm: iperf3 Not tainted 6.5.0-rc3+ #309
    [..]
     kasan_report+0x105/0x140
     ip_compute_csum+0x134/0x220
     iptunnel_pmtud_build_icmp+0x554/0x1020
     skb_tunnel_check_pmtu+0x513/0xb80
     vxlan_xmit_one+0x139e/0x2ef0
     vxlan_xmit+0x1867/0x2760
     dev_hard_start_xmit+0x1ee/0x4f0
     br_dev_queue_push_xmit+0x4d1/0x660
     [..]
    
    ip_compute_csum() cannot deal with nonlinear skbs, so avoid it.
    After this change, splat is gone and iperf3 is no longer stuck.
    
    Fixes: 4cb47a86 ("tunnels: PMTU discovery support for directly bridged IP packets")
    Signed-off-by: default avatarFlorian Westphal <fw@strlen.de>
    Link: https://lore.kernel.org/r/20230803152653.29535-2-fw@strlen.deSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    6a7ac3d2
ip_tunnel_core.c 30.7 KB