Re: [PATCH] net: check skb partial checksum offset after trim

2020-12-14 Thread Vasily Averin
On 12/15/20 12:07 AM, Willem de Bruijn wrote: > On Mon, Dec 14, 2020 at 3:56 PM Jakub Kicinski wrote: >> >> On Sun, 13 Dec 2020 20:59:54 -0500 Willem de Bruijn wrote: >>> On Sun, Dec 13, 2020 at 2:37 PM Vasily Averin wrote: >> On 12/11/20 6:37 PM, Vasily Averin wrote: >>> It seems for me

Re: [PATCH] net: check skb partial checksum offset after trim

2020-12-14 Thread Willem de Bruijn
On Mon, Dec 14, 2020 at 3:56 PM Jakub Kicinski wrote: > > On Sun, 13 Dec 2020 20:59:54 -0500 Willem de Bruijn wrote: > > On Sun, Dec 13, 2020 at 2:37 PM Vasily Averin wrote: > > > >> On 12/11/20 6:37 PM, Vasily Averin wrote: > > > >>> It seems for me the similar problem can happen in __skb_trim_r

Re: [PATCH] net: check skb partial checksum offset after trim

2020-12-14 Thread Jakub Kicinski
On Sun, 13 Dec 2020 20:59:54 -0500 Willem de Bruijn wrote: > On Sun, Dec 13, 2020 at 2:37 PM Vasily Averin wrote: > > >> On 12/11/20 6:37 PM, Vasily Averin wrote: > > >>> It seems for me the similar problem can happen in __skb_trim_rcsum(). > > >>> Also I doubt that that skb_checksum_start_offse

Re: [PATCH] net: check skb partial checksum offset after trim

2020-12-13 Thread Willem de Bruijn
On Sun, Dec 13, 2020 at 2:37 PM Vasily Averin wrote: > > On 12/13/20 2:49 AM, Willem de Bruijn wrote: > > On Sat, Dec 12, 2020 at 5:01 AM Vasily Averin wrote: > >> > >> On 12/11/20 6:37 PM, Vasily Averin wrote: > >>> It seems for me the similar problem can happen in __skb_trim_rcsum(). > >>> Also

Re: [PATCH] net: check skb partial checksum offset after trim

2020-12-13 Thread Vasily Averin
On 12/13/20 2:49 AM, Willem de Bruijn wrote: > On Sat, Dec 12, 2020 at 5:01 AM Vasily Averin wrote: >> >> On 12/11/20 6:37 PM, Vasily Averin wrote: >>> It seems for me the similar problem can happen in __skb_trim_rcsum(). >>> Also I doubt that that skb_checksum_start_offset(skb) checks in >>> __sk

Re: [PATCH] net: check skb partial checksum offset after trim

2020-12-12 Thread Willem de Bruijn
On Sat, Dec 12, 2020 at 5:01 AM Vasily Averin wrote: > > On 12/11/20 6:37 PM, Vasily Averin wrote: > > It seems for me the similar problem can happen in __skb_trim_rcsum(). > > Also I doubt that that skb_checksum_start_offset(skb) checks in > > __skb_postpull_rcsum() and skb_csum_unnecessary() are

Re: [PATCH] net: check skb partial checksum offset after trim

2020-12-12 Thread Vasily Averin
On 12/11/20 6:37 PM, Vasily Averin wrote: > It seems for me the similar problem can happen in __skb_trim_rcsum(). > Also I doubt that that skb_checksum_start_offset(skb) checks in > __skb_postpull_rcsum() and skb_csum_unnecessary() are correct, > becasue they do not guarantee that skb have correct

Re: [PATCH] net: check skb partial checksum offset after trim

2020-12-11 Thread Vasily Averin
Originally it was reported on Ubuntu 4.14 kernel, then I've reproduced it on upstream 5.10-rc7. If I'm right the problem is quite old and should affect all maintained stable kernels too. It seems for me the similar problem can happen in __skb_trim_rcsum(). Also I doubt that that skb_checksum_star

[PATCH] net: check skb partial checksum offset after trim

2020-12-11 Thread Vasily Averin
syzkaller reproduces BUG_ON in skb_checksum_help(): tun creates skb with big partial checksum area and small ip packet inside, then ip_rcv() decreases skb size of below length of checksummed area, then checksum_tg() called via netfilter hook detects incorrect skb: offset = skb_checksum_sta