All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jason Gunthorpe <jgg@nvidia.com>
To: Leon Romanovsky <leon@kernel.org>, linux-rdma@vger.kernel.org
Cc: Doug Ledford <dledford@redhat.com>,
	Mark Bloch <markb@mellanox.com>,
	patches@lists.linux.dev, stable@vger.kernel.org,
	syzbot+938fcd548c303fe33c1a@syzkaller.appspotmail.com
Subject: Re: [PATCH] RDMA/core: Check for the presence of LS_NLA_TYPE_DGID correctly
Date: Tue, 16 Dec 2025 21:44:18 -0400	[thread overview]
Message-ID: <20251217014418.GA148079@nvidia.com> (raw)
In-Reply-To: <0-v1-3fbaef094271+2cf-rdma_op_ip_rslv_syz_jgg@nvidia.com>

On Fri, Nov 28, 2025 at 01:37:28PM -0400, Jason Gunthorpe wrote:
> The netlink response for RDMA_NL_LS_OP_IP_RESOLVE should always have a
> LS_NLA_TYPE_DGID attribute, it is invalid if it does not.
> 
> Use the nl parsing logic properly and call nla_parse_deprecated() to fill
> the nlattrs array and then directly index that array to get the data for
> the DGID. Just fail if it is NULL.
> 
> Remove the for loop searching for the nla, and squash the validation and
> parsing into one function.
> 
> Fixes an uninitialized read from the stack triggered by userspace if it
> does not provide the DGID to a kernel initiated RDMA_NL_LS_OP_IP_RESOLVE
> query.
> 
>     BUG: KMSAN: uninit-value in hex_byte_pack include/linux/hex.h:13 [inline]
>     BUG: KMSAN: uninit-value in ip6_string+0xef4/0x13a0 lib/vsprintf.c:1490
>      hex_byte_pack include/linux/hex.h:13 [inline]
>      ip6_string+0xef4/0x13a0 lib/vsprintf.c:1490
>      ip6_addr_string+0x18a/0x3e0 lib/vsprintf.c:1509
>      ip_addr_string+0x245/0xee0 lib/vsprintf.c:1633
>      pointer+0xc09/0x1bd0 lib/vsprintf.c:2542
>      vsnprintf+0xf8a/0x1bd0 lib/vsprintf.c:2930
>      vprintk_store+0x3ae/0x1530 kernel/printk/printk.c:2279
>      vprintk_emit+0x307/0xcd0 kernel/printk/printk.c:2426
>      vprintk_default+0x3f/0x50 kernel/printk/printk.c:2465
>      vprintk+0x36/0x50 kernel/printk/printk_safe.c:82
>      _printk+0x17e/0x1b0 kernel/printk/printk.c:2475
>      ib_nl_process_good_ip_rsep drivers/infiniband/core/addr.c:128 [inline]
>      ib_nl_handle_ip_res_resp+0x963/0x9d0 drivers/infiniband/core/addr.c:141
>      rdma_nl_rcv_msg drivers/infiniband/core/netlink.c:-1 [inline]
>      rdma_nl_rcv_skb drivers/infiniband/core/netlink.c:239 [inline]
>      rdma_nl_rcv+0xefa/0x11c0 drivers/infiniband/core/netlink.c:259
>      netlink_unicast_kernel net/netlink/af_netlink.c:1320 [inline]
>      netlink_unicast+0xf04/0x12b0 net/netlink/af_netlink.c:1346
>      netlink_sendmsg+0x10b3/0x1250 net/netlink/af_netlink.c:1896
>      sock_sendmsg_nosec net/socket.c:714 [inline]
>      __sock_sendmsg+0x333/0x3d0 net/socket.c:729
>      ____sys_sendmsg+0x7e0/0xd80 net/socket.c:2617
>      ___sys_sendmsg+0x271/0x3b0 net/socket.c:2671
>      __sys_sendmsg+0x1aa/0x300 net/socket.c:2703
>      __compat_sys_sendmsg net/compat.c:346 [inline]
>      __do_compat_sys_sendmsg net/compat.c:353 [inline]
>      __se_compat_sys_sendmsg net/compat.c:350 [inline]
>      __ia32_compat_sys_sendmsg+0xa4/0x100 net/compat.c:350
>      ia32_sys_call+0x3f6c/0x4310 arch/x86/include/generated/asm/syscalls_32.h:371
>      do_syscall_32_irqs_on arch/x86/entry/syscall_32.c:83 [inline]
>      __do_fast_syscall_32+0xb0/0x150 arch/x86/entry/syscall_32.c:306
>      do_fast_syscall_32+0x38/0x80 arch/x86/entry/syscall_32.c:331
>      do_SYSENTER_32+0x1f/0x30 arch/x86/entry/syscall_32.c:3
> 
> Cc: stable@vger.kernel.org
> Fixes: ae43f8286730 ("IB/core: Add IP to GID netlink offload")
> Reported-by: syzbot+938fcd548c303fe33c1a@syzkaller.appspotmail.com
> Closes: https://lore.kernel.org/r/68dc3dac.a00a0220.102ee.004f.GAE@google.com
> Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
> ---
>  drivers/infiniband/core/addr.c | 33 ++++++++++-----------------------
>  1 file changed, 10 insertions(+), 23 deletions(-)

Applied to for-rc

Jason

      reply	other threads:[~2025-12-17  1:44 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-11-28 17:37 [PATCH] RDMA/core: Check for the presence of LS_NLA_TYPE_DGID correctly Jason Gunthorpe
2025-12-17  1:44 ` Jason Gunthorpe [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20251217014418.GA148079@nvidia.com \
    --to=jgg@nvidia.com \
    --cc=dledford@redhat.com \
    --cc=leon@kernel.org \
    --cc=linux-rdma@vger.kernel.org \
    --cc=markb@mellanox.com \
    --cc=patches@lists.linux.dev \
    --cc=stable@vger.kernel.org \
    --cc=syzbot+938fcd548c303fe33c1a@syzkaller.appspotmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.