netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Eric Dumazet <eric.dumazet@gmail.com>
To: Heiner Kallweit <hkallweit1@gmail.com>,
	Eric Dumazet <eric.dumazet@gmail.com>,
	Eric Dumazet <edumazet@google.com>
Cc: "netdev@vger.kernel.org" <netdev@vger.kernel.org>
Subject: Re: [Bug 209423] WARN_ON_ONCE() at rtl8169_tso_csum_v2()
Date: Fri, 9 Oct 2020 10:29:20 +0200	[thread overview]
Message-ID: <683da991-2666-ed40-26a7-32e1e6858c24@gmail.com> (raw)
In-Reply-To: <186242a7-4e63-dccc-0879-1069823f079a@gmail.com>



On 10/8/20 10:54 PM, Heiner Kallweit wrote:
> On 08.10.2020 21:07, Eric Dumazet wrote:
>>
>>
>> On 10/8/20 8:50 PM, Eric Dumazet wrote:
>>>
>>>
>>> OK, it would be nice to know what is the input interface
>>>
>>> if4 -> look at "ip link | grep 4:"
>>>
>>> Then identifying the driver that built such a strange packet (32000
>>> bytes allocated in skb->head)
>>>
>>> ethtool -i ifname
>>>
>>
>> According to https://bugzilla.kernel.org/show_bug.cgi?id=209423
>>
>> iif4 is the tun200 interface used by openvpn.
>>
>> So this might be a tun bug, or lack of proper SKB_GSO_DODGY validation
>> in our stack for buggy/malicious packets.
>>
>>
> 
> Following old commit sounds like it might be related:
> 622e0ca1cd4d ("gro: Fix bogus gso_size on the first fraglist entry")
> 
> This code however was removed later in 58025e46ea2d ("net: gro: remove
> obsolete code from skb_gro_receive()")
> 

GRO wont keep in its queues a GSO packet
dev_gro_receive()
...
NAPI_GRO_CB(skb)->flush = skb_is_gso(skb) || skb_has_frag_list(skb);
...

Also note that tun no longer can inject a packet with a length of 134 bytes pretending
to have gso_size == 538

Look at virtio_net_hdr_to_skb() and commits
6dd912f82680 ("net: check untrusted gso_size at kernel entry")
7c6d2ecbda83 ("net: be more gentle about silly gso requests coming from user")

Really looking at the skb layout I suspect some usbnet bug and a use-after-free.

ASAN build might help.



  reply	other threads:[~2020-10-09  8:29 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <bug-209423-201211-atteo0d1ZY@https.bugzilla.kernel.org/>
2020-10-01 20:34 ` Fwd: [Bug 209423] WARN_ON_ONCE() at rtl8169_tso_csum_v2() Heiner Kallweit
2020-10-02  8:26   ` Eric Dumazet
2020-10-02  8:32     ` Eric Dumazet
2020-10-02  8:46       ` Eric Dumazet
2020-10-02 11:09         ` Heiner Kallweit
2020-10-02 11:48           ` Eric Dumazet
2020-10-08 16:37             ` Heiner Kallweit
2020-10-08 17:15               ` Eric Dumazet
2020-10-08 18:41                 ` Heiner Kallweit
2020-10-08 18:50                   ` Eric Dumazet
2020-10-08 19:07                     ` Eric Dumazet
2020-10-08 20:54                       ` Heiner Kallweit
2020-10-09  8:29                         ` Eric Dumazet [this message]
2021-01-19 12:40                     ` Juerg Haefliger
2021-01-19 13:47                       ` Heiner Kallweit
2021-01-19 13:58                         ` Eric Dumazet
2021-01-19 13:54                       ` Eric Dumazet
2021-01-19 15:38                         ` Juerg Haefliger
2021-01-19 15:50                           ` Eric Dumazet

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=683da991-2666-ed40-26a7-32e1e6858c24@gmail.com \
    --to=eric.dumazet@gmail.com \
    --cc=edumazet@google.com \
    --cc=hkallweit1@gmail.com \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).