[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Fri, 03 Apr 2015 18:10:44 -0700
From: Eric Dumazet <eric.dumazet@...il.com>
To: Alexei Potashnik <alexei@...estorage.com>
Cc: Joern Engel <joern@...estorage.com>,
"David S. Miller" <davem@...emloft.net>, netdev@...r.kernel.org
Subject: Re: neigh use-after-free
On Fri, 2015-04-03 at 17:57 -0700, Alexei Potashnik wrote:
>
> My understanding of the state when issue occurs is:
> - neigh_destroy() has finished executing
> - no timer for this neigh entry is pending or running
> (which makes neigh_timer_handler behavior irrelevant)
> - but kfree_rcu callback for the neigh entry has not executed yet
> - at this point IP code finds the entry with __ipv4_neigh_lookup_noref
> and starts operating on it.
>
Right. So far no rule here seems to be violated.
As long as IP code finds a neighbor, it is allowed to use it.
Freeing of the neighbor should not happen before rcu grace period.
Problem is __neigh_event_send() is ignoring n->dead
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists