Re: [PATCH v2] net: fix NULL pointer reference in cipso_v4_doi_free

From: Paul Moore
Date: Mon Aug 30 2021 - 12:50:48 EST


On Mon, Aug 30, 2021 at 12:45 PM Jakub Kicinski <kuba@xxxxxxxxxx> wrote:
> On Mon, 30 Aug 2021 10:17:05 -0400 Paul Moore wrote:
> > On Mon, Aug 30, 2021 at 6:28 AM 王贇 <yun.wang@xxxxxxxxxxxxxxxxx> wrote:
> > >
> > > In netlbl_cipsov4_add_std() when 'doi_def->map.std' alloc
> > > failed, we sometime observe panic:
> > >
> > > BUG: kernel NULL pointer dereference, address:
> > > ...
> > > RIP: 0010:cipso_v4_doi_free+0x3a/0x80
> > > ...
> > > Call Trace:
> > > netlbl_cipsov4_add_std+0xf4/0x8c0
> > > netlbl_cipsov4_add+0x13f/0x1b0
> > > genl_family_rcv_msg_doit.isra.15+0x132/0x170
> > > genl_rcv_msg+0x125/0x240
> > >
> > > This is because in cipso_v4_doi_free() there is no check
> > > on 'doi_def->map.std' when doi_def->type got value 1, which
> > > is possibe, since netlbl_cipsov4_add_std() haven't initialize
> > > it before alloc 'doi_def->map.std'.
> > >
> > > This patch just add the check to prevent panic happen in similar
> > > cases.
> > >
> > > Reported-by: Abaci <abaci@xxxxxxxxxxxxxxxxx>
> > > Signed-off-by: Michael Wang <yun.wang@xxxxxxxxxxxxxxxxx>
> > > ---
> > > net/netlabel/netlabel_cipso_v4.c | 4 ++--
> > > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > I see this was already merged, but it looks good to me, thanks for
> > making those changes.
>
> FWIW it looks like v1 was also merged:
>
> https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/commit/?id=733c99ee8b

Yeah, that is unfortunate, there was a brief discussion about that
over on one of the -stable patches for the v1 patch (odd that I never
saw a patchbot post for the v1 patch?). Having both merged should be
harmless, but we want to revert the v1 patch as soon as we can.
Michael, can you take care of this?

--
paul moore
www.paul-moore.com