[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20200914.164103.588605919188301861.davem@davemloft.net>
Date: Mon, 14 Sep 2020 16:41:03 -0700 (PDT)
From: David Miller <davem@...emloft.net>
To: lucien.xin@...il.com
Cc: netdev@...r.kernel.org, tipc-discussion@...ts.sourceforge.net,
jmaloy@...hat.com, ying.xue@...driver.com
Subject: Re: [PATCH net] tipc: use skb_unshare() instead in
tipc_buf_append()
From: Xin Long <lucien.xin@...il.com>
Date: Sun, 13 Sep 2020 19:37:31 +0800
> In tipc_buf_append() it may change skb's frag_list, and it causes
> problems when this skb is cloned. skb_unclone() doesn't really
> make this skb's flag_list available to change.
>
> Shuang Li has reported an use-after-free issue because of this
> when creating quite a few macvlan dev over the same dev, where
> the broadcast packets will be cloned and go up to the stack:
...
> So fix it by using skb_unshare() instead, which would create a new
> skb for the cloned frag and it'll be safe to change its frag_list.
> The similar things were also done in sctp_make_reassembled_event(),
> which is using skb_copy().
>
> Reported-by: Shuang Li <shuali@...hat.com>
> Fixes: 37e22164a8a3 ("tipc: rename and move message reassembly function")
> Signed-off-by: Xin Long <lucien.xin@...il.com>
Applied and queued up for -stable, thanks.
Powered by blists - more mailing lists