From: Tom Herbert <tom@herbertland.com> To: Hannes Frederic Sowa <hannes@redhat.com> Cc: David Miller <davem@davemloft.net>, Alex Duyck <aduyck@mirantis.com>, Linux Kernel Network Developers <netdev@vger.kernel.org>, intel-wired-lan <intel-wired-lan@lists.osuosl.org>, Jesse Gross <jesse@kernel.org>, Eugenia Emantayev <eugenia@mellanox.com>, Jiri Benc <jbenc@redhat.com>, Alexander Duyck <alexander.duyck@gmail.com>, Saeed Mahameed <saeedm@mellanox.com>, Ariel Elior <ariel.elior@qlogic.com>, michael.chan@broadcom.com, Dept-GELinuxNICDev@qlogic.com Subject: Re: [net-next PATCH v3 00/17] Future-proof tunnel offload handlers Date: Mon, 20 Jun 2016 12:27:32 -0700 [thread overview] Message-ID: <CALx6S35C=QnD3WtK52Wc7FLXt77e80OWG1-5qjS5nMVm-nwkCA@mail.gmail.com> (raw) In-Reply-To: <34f19f9c-221b-78f0-3989-9384e0d22e54@redhat.com> > Do we? > > We look up the socket in a proper way, inclusive the namespace belonging > to the device we received the packet on. That said, I don't see a > problem with that right now. But maybe I miss something? > When we so the socket lookup in udp_rcv this is done after IP layer and packet has been determined to be loacally addressed. The packet is for the host, and if a UDP socket is matched, even if just based on destination port, the socket is matched and received functions are called. There is no ambiguity. When the lookup is performed in GRO this is before we processed IP and determined that the packet is local. So a packet with any address (local or not) will match a listener socket with the same UDP port. The GRO can be performed an packet is subsequently forwarded maybe having been modified. If this packet turns out to not be the protocol we thought it was (e.g. VXLAN) then we have now potentially silently corrupted someone else's packets. Grant it, there's probably a lot of things that are required to make corruption happen, but it does allow the possibly of systematic data corruption and we haven't discounted this to become a security vulnerability. Tom > Thanks, > Hannes >
WARNING: multiple messages have this Message-ID (diff)
From: Tom Herbert <tom@herbertland.com> To: intel-wired-lan@osuosl.org Subject: [Intel-wired-lan] [net-next PATCH v3 00/17] Future-proof tunnel offload handlers Date: Mon, 20 Jun 2016 12:27:32 -0700 [thread overview] Message-ID: <CALx6S35C=QnD3WtK52Wc7FLXt77e80OWG1-5qjS5nMVm-nwkCA@mail.gmail.com> (raw) In-Reply-To: <34f19f9c-221b-78f0-3989-9384e0d22e54@redhat.com> > Do we? > > We look up the socket in a proper way, inclusive the namespace belonging > to the device we received the packet on. That said, I don't see a > problem with that right now. But maybe I miss something? > When we so the socket lookup in udp_rcv this is done after IP layer and packet has been determined to be loacally addressed. The packet is for the host, and if a UDP socket is matched, even if just based on destination port, the socket is matched and received functions are called. There is no ambiguity. When the lookup is performed in GRO this is before we processed IP and determined that the packet is local. So a packet with any address (local or not) will match a listener socket with the same UDP port. The GRO can be performed an packet is subsequently forwarded maybe having been modified. If this packet turns out to not be the protocol we thought it was (e.g. VXLAN) then we have now potentially silently corrupted someone else's packets. Grant it, there's probably a lot of things that are required to make corruption happen, but it does allow the possibly of systematic data corruption and we haven't discounted this to become a security vulnerability. Tom > Thanks, > Hannes >
next prev parent reply other threads:[~2016-06-20 19:35 UTC|newest] Thread overview: 82+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-06-16 19:20 [net-next PATCH v3 00/17] Future-proof tunnel offload handlers Alexander Duyck 2016-06-16 19:20 ` [Intel-wired-lan] " Alexander Duyck 2016-06-16 19:20 ` [net-next PATCH v3 01/17] vxlan/geneve: Include udp_tunnel.h in vxlan/geneve.h and fixup includes Alexander Duyck 2016-06-16 19:20 ` [Intel-wired-lan] " Alexander Duyck 2016-06-16 23:06 ` Hannes Frederic Sowa 2016-06-16 23:06 ` [Intel-wired-lan] " Hannes Frederic Sowa 2016-06-16 19:20 ` [net-next PATCH v3 02/17] net: Combine GENEVE and VXLAN port notifiers into single functions Alexander Duyck 2016-06-16 19:20 ` [Intel-wired-lan] " Alexander Duyck 2016-06-16 22:45 ` Hannes Frederic Sowa 2016-06-16 22:45 ` [Intel-wired-lan] " Hannes Frederic Sowa 2016-06-16 19:21 ` [net-next PATCH v3 03/17] net: Merge VXLAN and GENEVE push notifiers into a single notifier Alexander Duyck 2016-06-16 19:21 ` [Intel-wired-lan] " Alexander Duyck 2016-06-16 22:47 ` Hannes Frederic Sowa 2016-06-16 22:47 ` [Intel-wired-lan] " Hannes Frederic Sowa 2016-06-16 19:21 ` [net-next PATCH v3 04/17] bnx2x: Move all UDP port notifiers to single function Alexander Duyck 2016-06-16 19:21 ` [Intel-wired-lan] " Alexander Duyck 2016-06-16 19:21 ` [net-next PATCH v3 05/17] bnxt: Update drivers to support unified UDP encapsulation offload functions Alexander Duyck 2016-06-16 19:21 ` [Intel-wired-lan] " Alexander Duyck 2016-06-16 19:21 ` [net-next PATCH v3 06/17] bnxt: Move GENEVE support from hard-coded port to using port notifier Alexander Duyck 2016-06-16 19:21 ` [Intel-wired-lan] " Alexander Duyck 2016-06-16 23:12 ` Michael Chan 2016-06-16 23:12 ` [Intel-wired-lan] " Michael Chan 2016-06-16 19:21 ` [net-next PATCH v3 07/17] benet: Replace ndo_add/del_vxlan_port with ndo_add/del_udp_enc_port Alexander Duyck 2016-06-16 19:21 ` [Intel-wired-lan] " Alexander Duyck 2016-06-16 19:21 ` [net-next PATCH v3 08/17] fm10k: " Alexander Duyck 2016-06-16 19:21 ` [Intel-wired-lan] " Alexander Duyck 2016-06-16 19:22 ` [net-next PATCH v3 09/17] i40e: Move all UDP port notifiers to single function Alexander Duyck 2016-06-16 19:22 ` [Intel-wired-lan] " Alexander Duyck 2016-06-16 19:22 ` [net-next PATCH v3 10/17] ixgbe: Replace ndo_add/del_vxlan_port with ndo_add/del_udp_enc_port Alexander Duyck 2016-06-16 19:22 ` [Intel-wired-lan] " Alexander Duyck 2016-06-16 19:22 ` [net-next PATCH v3 11/17] mlx4_en: " Alexander Duyck 2016-06-16 19:22 ` [Intel-wired-lan] " Alexander Duyck 2016-06-16 19:22 ` [net-next PATCH v3 12/17] mlx5_en: " Alexander Duyck 2016-06-16 19:22 ` [Intel-wired-lan] " Alexander Duyck 2016-06-16 19:22 ` [net-next PATCH v3 13/17] nfp: " Alexander Duyck 2016-06-16 19:22 ` [Intel-wired-lan] " Alexander Duyck 2016-06-16 19:22 ` [net-next PATCH v3 14/17] qede: Move all UDP port notifiers to single function Alexander Duyck 2016-06-16 19:22 ` [Intel-wired-lan] " Alexander Duyck 2016-06-16 19:23 ` [net-next PATCH v3 15/17] qlcnic: Replace ndo_add/del_vxlan_port with ndo_add/del_udp_enc_port Alexander Duyck 2016-06-16 19:23 ` [Intel-wired-lan] " Alexander Duyck 2016-06-16 19:23 ` [net-next PATCH v3 16/17] net: Remove deprecated tunnel specific UDP offload functions Alexander Duyck 2016-06-16 19:23 ` [Intel-wired-lan] " Alexander Duyck 2016-06-16 22:59 ` Hannes Frederic Sowa 2016-06-16 22:59 ` [Intel-wired-lan] " Hannes Frederic Sowa 2016-06-16 19:23 ` [net-next PATCH v3 17/17] vxlan: Add new UDP encapsulation offload type for VXLAN-GPE Alexander Duyck 2016-06-16 19:23 ` [Intel-wired-lan] " Alexander Duyck 2016-06-16 23:01 ` Hannes Frederic Sowa 2016-06-16 23:01 ` [Intel-wired-lan] " Hannes Frederic Sowa 2016-06-18 3:26 ` [net-next PATCH v3 00/17] Future-proof tunnel offload handlers David Miller 2016-06-18 3:26 ` [Intel-wired-lan] " David Miller 2016-06-20 17:05 ` Tom Herbert 2016-06-20 17:05 ` [Intel-wired-lan] " Tom Herbert 2016-06-20 18:11 ` Hannes Frederic Sowa 2016-06-20 18:11 ` [Intel-wired-lan] " Hannes Frederic Sowa 2016-06-20 19:27 ` Tom Herbert [this message] 2016-06-20 19:27 ` Tom Herbert 2016-06-20 21:36 ` Hannes Frederic Sowa 2016-06-20 21:36 ` [Intel-wired-lan] " Hannes Frederic Sowa 2016-06-20 21:45 ` Tom Herbert 2016-06-20 21:45 ` [Intel-wired-lan] " Tom Herbert 2016-06-21 8:34 ` David Miller 2016-06-21 8:34 ` [Intel-wired-lan] " David Miller 2016-06-21 8:22 ` David Miller 2016-06-21 8:22 ` [Intel-wired-lan] " David Miller 2016-06-21 10:41 ` Edward Cree 2016-06-21 10:41 ` [Intel-wired-lan] " Edward Cree 2016-06-21 15:23 ` Hannes Frederic Sowa 2016-06-21 15:23 ` [Intel-wired-lan] " Hannes Frederic Sowa 2016-06-21 17:05 ` Alexander Duyck 2016-06-21 17:05 ` [Intel-wired-lan] " Alexander Duyck 2016-06-21 17:27 ` Edward Cree 2016-06-21 17:27 ` [Intel-wired-lan] " Edward Cree 2016-06-21 17:40 ` Hannes Frederic Sowa 2016-06-21 17:40 ` [Intel-wired-lan] " Hannes Frederic Sowa 2016-06-21 18:17 ` Alexander Duyck 2016-06-21 18:17 ` [Intel-wired-lan] " Alexander Duyck 2016-06-21 18:42 ` Tom Herbert 2016-06-21 18:42 ` [Intel-wired-lan] " Tom Herbert 2016-06-21 21:34 ` Hannes Frederic Sowa 2016-06-21 21:34 ` [Intel-wired-lan] " Hannes Frederic Sowa 2016-06-21 18:23 ` Edward Cree 2016-06-21 18:23 ` [Intel-wired-lan] " Edward Cree
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='CALx6S35C=QnD3WtK52Wc7FLXt77e80OWG1-5qjS5nMVm-nwkCA@mail.gmail.com' \ --to=tom@herbertland.com \ --cc=Dept-GELinuxNICDev@qlogic.com \ --cc=aduyck@mirantis.com \ --cc=alexander.duyck@gmail.com \ --cc=ariel.elior@qlogic.com \ --cc=davem@davemloft.net \ --cc=eugenia@mellanox.com \ --cc=hannes@redhat.com \ --cc=intel-wired-lan@lists.osuosl.org \ --cc=jbenc@redhat.com \ --cc=jesse@kernel.org \ --cc=michael.chan@broadcom.com \ --cc=netdev@vger.kernel.org \ --cc=saeedm@mellanox.com \ /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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.