[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20191105.181902.1732028417429752629.davem@davemloft.net>
Date: Tue, 05 Nov 2019 18:19:02 -0800 (PST)
From: David Miller <davem@...emloft.net>
To: stranche@...eaurora.org
Cc: netdev@...r.kernel.org
Subject: Re: [PATCH net v2] net: qualcomm: rmnet: Fix potential UAF when
unregistering
From: Sean Tranchetti <stranche@...eaurora.org>
Date: Mon, 4 Nov 2019 17:54:22 -0700
> During the exit/unregistration process of the RmNet driver, the function
> rmnet_unregister_real_device() is called to handle freeing the driver's
> internal state and removing the RX handler on the underlying physical
> device. However, the order of operations this function performs is wrong
> and can lead to a use after free of the rmnet_port structure.
>
> Before calling netdev_rx_handler_unregister(), this port structure is
> freed with kfree(). If packets are received on any RmNet devices before
> synchronize_net() completes, they will attempt to use this already-freed
> port structure when processing the packet. As such, before cleaning up any
> other internal state, the RX handler must be unregistered in order to
> guarantee that no further packets will arrive on the device.
>
> Fixes: ceed73a2cf4a ("drivers: net: ethernet: qualcomm: rmnet: Initial implementation")
> Signed-off-by: Sean Tranchetti <stranche@...eaurora.org>
Applied and queued up for -stable, thanks.
Powered by blists - more mailing lists