[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <9d161f2c-5cf3-9400-f6fd-f121e352246d@iogearbox.net>
Date: Sat, 24 Aug 2019 01:34:42 +0200
From: Daniel Borkmann <daniel@...earbox.net>
To: Jakub Sitnicki <jakub@...udflare.com>, bpf@...r.kernel.org
Cc: netdev@...r.kernel.org, kernel-team@...udflare.com,
Petar Penkov <ppenkov@...gle.com>,
Willem de Bruijn <willemb@...gle.com>,
Lorenz Bauer <lmb@...udflare.com>
Subject: Re: [PATCH bpf] flow_dissector: Fix potential use-after-free on
BPF_PROG_DETACH
On 8/21/19 2:17 PM, Jakub Sitnicki wrote:
> Call to bpf_prog_put(), with help of call_rcu(), queues an RCU-callback to
> free the program once a grace period has elapsed. The callback can run
> together with new RCU readers that started after the last grace period.
> New RCU readers can potentially see the "old" to-be-freed or already-freed
> pointer to the program object before the RCU update-side NULLs it.
>
> Reorder the operations so that the RCU update-side resets the protected
> pointer before the end of the grace period after which the program will be
> freed.
>
> Fixes: d58e468b1112 ("flow_dissector: implements flow dissector BPF hook")
> Reported-by: Lorenz Bauer <lmb@...udflare.com>
> Signed-off-by: Jakub Sitnicki <jakub@...udflare.com>
Applied, thanks!
Powered by blists - more mailing lists