Re: [PATCH RFC] xfrm: add missing RCU read lock in xfrm_send_migrate_state()
Aleksandr Nogikh <[email protected]> Fri, 31 Jul 2026 12:03:43 +0200
| Newsgroups | dev.linux.lists.syzbot |
|---|---|
| Message-ID | <CANp29Y5i6Tp7g1-H2L8N3mCdBNX9hMwWh9GRFmRSbAuDnyPkdg@mail.gmail.com> |
#syz upstream On Fri, Jul 31, 2026 at 10:11=E2=80=AFAM 'syzbot' via syzkaller-upstream-moderation <[email protected]> wrote: > > xfrm_nlmsg_multicast() requires the RCU read lock to be held because it > safely dereferences the net->xfrm.nlsk pointer using rcu_dereference(). > When it is called from xfrm_send_migrate_state(), the RCU read lock is no= t > held, which triggers a suspicious RCU usage warning: > > WARNING: suspicious RCU usage > net/xfrm/xfrm_user.c:1630 suspicious rcu_dereference_check() usage! > > Call Trace: > lockdep_rcu_suspicious+0x13f/0x1d0 kernel/locking/lockdep.c:6876 > xfrm_nlmsg_multicast+0x1d8/0x1f0 net/xfrm/xfrm_user.c:1630 > xfrm_send_migrate_state+0x870/0xae0 net/xfrm/xfrm_user.c:3340 > xfrm_do_migrate_state+0x1749/0x1e90 net/xfrm/xfrm_user.c:3507 > xfrm_user_rcv_msg+0x7a8/0xf30 net/xfrm/xfrm_user.c:3907 > > Fix this by wrapping the xfrm_nlmsg_multicast() call in > xfrm_send_migrate_state() with rcu_read_lock() and rcu_read_unlock(). > > Fixes: a9d155ea9b44 ("xfrm: add XFRM_MSG_MIGRATE_STATE for single SA migr= ation") > Assisted-by: Gemini:gemini-3.5-flash Gemini:gemini-3.1-pro-preview syzbot > Reported-by: [email protected] > Closes: https://syzkaller.appspot.com/bug?extid=3Dc0e99a1aa85a286d7a3b > Link: https://syzkaller.appspot.com/ai_job?id=3D8977f559-3a7e-4bb5-b4d6-1= 196956260b6 > To: "David S. Miller" <[email protected]> > To: "Eric Dumazet" <[email protected]> > To: "Herbert Xu" <[email protected]> > To: "Jakub Kicinski" <[email protected]> > To: <[email protected]> > To: "Paolo Abeni" <[email protected]> > To: "Steffen Klassert" <[email protected]> > To: "Antony Antony" <[email protected]> > Cc: "Simon Horman" <[email protected]> > Cc: <[email protected]> > > --- > diff --git a/net/xfrm/xfrm_user.c b/net/xfrm/xfrm_user.c > index d6db63304..0ba0614d6 100644 > --- a/net/xfrm/xfrm_user.c > +++ b/net/xfrm/xfrm_user.c > @@ -3337,7 +3337,11 @@ static int xfrm_send_migrate_state(struct net *net= , > return err; > } > > - return xfrm_nlmsg_multicast(net, skb, 0, XFRMNLGRP_MIGRATE); > + rcu_read_lock(); > + err =3D xfrm_nlmsg_multicast(net, skb, 0, XFRMNLGRP_MIGRATE); > + rcu_read_unlock(); > + > + return err; > } > > static int xfrm_do_migrate_state(struct sk_buff *skb, struct nlmsghdr *n= lh, > > > base-commit: f5098b6bae761e346ebcd9da7f95622c04733cff > -- > This is an AI-generated patch subject to moderation. > Reply with '#syz upstream' to Sign-off the patch as a human author > and send it to the upstream kernel mailing lists. > Reply with '#syz reject' to reject it ('#syz unreject' to undo). > > See https://goo.gle/syzbot-ai-patches for information about AI-generated = patches. > You can comment on the patch as usual, syzbot will try to address > the comments and send a new version of the patch if necessary. > syzbot engineers can be reached at [email protected]. > > -- > You received this message because you are subscribed to the Google Groups= "syzkaller-upstream-moderation" group. > To unsubscribe from this group and stop receiving emails from it, send an= email to [email protected]. > To view this discussion visit https://groups.google.com/d/msgid/syzkaller= -upstream-moderation/7c563560-c865-48d0-a1af-7d786d353d3c%40mail.kernel.org= .