[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20170313.125401.1159069954838003447.davem@davemloft.net>
Date: Mon, 13 Mar 2017 12:54:01 -0700 (PDT)
From: David Miller <davem@...emloft.net>
To: fw@...len.de
Cc: netdev@...r.kernel.org, hannes@...essinduktion.org
Subject: Re: [PATCH nf] ipv6: avoid write to a possibly cloned skb
From: Florian Westphal <fw@...len.de>
Date: Mon, 13 Mar 2017 16:24:28 +0100
> ip6_fragment, in case skb has a fraglist, checks if the
> skb is cloned. If it is, it will move to the 'slow path' and allocates
> new skbs for each fragment.
>
> However, right before entering the slowpath loop, it updates the
> nexthdr value of the last ipv6 extension header to NEXTHDR_FRAGMENT,
> to account for the fragment header that will be inserted in the new
> ipv6-fragment skbs.
>
> In case original skb is cloned this munges nexthdr value of another
> skb. Avoid this by doing the nexthdr update for each of the new fragment
> skbs separately.
>
> This was observed with tcpdump on a bridge device where netfilter ipv6
> reassembly is active: tcpdump shows malformed fragment headers as
> the l4 header (icmpv6, tcp, etc). is decoded as a fragment header.
>
> Cc: Hannes Frederic Sowa <hannes@...essinduktion.org>
> Reported-by: Andreas Karis <akaris@...hat.com>
> Signed-off-by: Florian Westphal <fw@...len.de>
Great catch Florian, applied, thanks.
Powered by blists - more mailing lists