Re: [PATCH] team: Fix use-after-free when an option instance allocation fails

From: Florent Revest
Date: Wed Dec 06 2023 - 11:32:17 EST


On Wed, Dec 6, 2023 at 4:05 PM Hangbin Liu <liuhangbin@xxxxxxxxx> wrote:
>
> On Wed, Dec 06, 2023 at 01:37:18PM +0100, Florent Revest wrote:
> > In __team_options_register, team_options are allocated and appended to
> > the team's option_list.
> > If one option instance allocation fails, the "inst_rollback" cleanup
> > path frees the previously allocated options but doesn't remove them from
> > the team's option_list.
> > This leaves dangling pointers that can be dereferenced later by other
> > parts of the team driver that iterate over options.
> >
> > This patch fixes the cleanup path to remove the dangling pointers from
> > the list.
> >
> > As far as I can tell, this uaf doesn't have much security implications
> > since it would be fairly hard to exploit (an attacker would need to make
> > the allocation of that specific small object fail) but it's still nice
> > to fix.
> >
> > Fixes: 80f7c6683fe0 ("team: add support for per-port options")
> > Signed-off-by: Florent Revest <revest@xxxxxxxxxxxx>
>
> Reviewed-by: Hangbin Liu <liuhangbin@xxxxxxxxx>

Thank you for the quick reviews Hangbin & Jiri, I appreciate! :)

I just realized I forgot to CC stable (like I always do... :) maybe I
should tattoo it on my arm) Let me know if you'd like a v2 adding:

Cc: stable@xxxxxxxxxxxxxxx