lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Wed, 14 Mar 2018 13:29:11 +0000
From:   "Kalderon, Michal" <Michal.Kalderon@...ium.com>
To:     Joe Perches <joe@...ches.com>,
        "davem@...emloft.net" <davem@...emloft.net>
CC:     "netdev@...r.kernel.org" <netdev@...r.kernel.org>,
        "dledford@...hat.com" <dledford@...hat.com>,
        "jgg@...lanox.com" <jgg@...lanox.com>,
        "linux-rdma@...r.kernel.org" <linux-rdma@...r.kernel.org>,
        "Elior, Ariel" <Ariel.Elior@...ium.com>
Subject: RE: [PATCH net 2/2] qed: Fix non TCP packets should be dropped on
 iWARP ll2 connection

> From: Joe Perches [mailto:joe@...ches.com]
> Sent: Wednesday, March 14, 2018 3:03 PM
> To: Kalderon, Michal <Michal.Kalderon@...ium.com>;
> davem@...emloft.net
> Cc: netdev@...r.kernel.org; dledford@...hat.com; jgg@...lanox.com;
> linux-rdma@...r.kernel.org; Elior, Ariel <Ariel.Elior@...ium.com>
> Subject: Re: [PATCH net 2/2] qed: Fix non TCP packets should be dropped on
> iWARP ll2 connection
> 
> [This sender failed our fraud detection checks and may not be who they
> appear to be. Learn about spoofing at http://aka.ms/LearnAboutSpoofing]
> 
> On Wed, 2018-03-14 at 14:49 +0200, Michal Kalderon wrote:
> > FW workaround. The iWARP LL2 connection did not expect TCP packets to
> > arrive on it's connection. The fix drops any non-tcp packets
> []
> > diff --git a/drivers/net/ethernet/qlogic/qed/qed_iwarp.c
> > b/drivers/net/ethernet/qlogic/qed/qed_iwarp.c
> []
> > @@ -1703,6 +1703,13 @@ qed_iwarp_parse_rx_pkt(struct qed_hwfn
> *p_hwfn,
> >       iph = (struct iphdr *)((u8 *)(ethh) + eth_hlen);
> >
> >       if (eth_type == ETH_P_IP) {
> > +             if (iph->protocol != IPPROTO_TCP) {
> > +                     DP_NOTICE(p_hwfn,
> > +                               "Unexpected ip protocol on ll2 %x\n",
> > +                               iph->protocol);
> > +                     return -EINVAL;
> > +             }
> 
> Perhaps this should be ratelimited.
The rate of the packets that could arrive here is very low. It has to do with a corner case
Of RoCEv2 packets being sent to a device that was enabled with iWARP. 

> 
> > +
> >               cm_info->local_ip[0] = ntohl(iph->daddr);
> >               cm_info->remote_ip[0] = ntohl(iph->saddr);
> >               cm_info->ip_version = TCP_IPV4; @@ -1711,6 +1718,14 @@
> > qed_iwarp_parse_rx_pkt(struct qed_hwfn *p_hwfn,
> >               *payload_len = ntohs(iph->tot_len) - ip_hlen;
> >       } else if (eth_type == ETH_P_IPV6) {
> >               ip6h = (struct ipv6hdr *)iph;
> > +
> > +             if (ip6h->nexthdr != IPPROTO_TCP) {
> > +                     DP_NOTICE(p_hwfn,
> > +                               "Unexpected ip protocol on ll2 %x\n",
> > +                               iph->protocol);
> > +                     return -EINVAL;
> 
> here too
> 
> > +             }
> > +
> >               for (i = 0; i < 4; i++) {
> >                       cm_info->local_ip[i] =
> >                           ntohl(ip6h->daddr.in6_u.u6_addr32[i]);

Powered by blists - more mailing lists