All of lore.kernel.org
 help / color / mirror / Atom feed
From: Leon Romanovsky <leon@kernel.org>
To: Hillf Danton <hdanton@sina.com>
Cc: syzbot <syzbot+e3f96c43d19782dd14a7@syzkaller.appspotmail.com>,
	jgg@ziepe.ca, linux-kernel@vger.kernel.org,
	linux-rdma@vger.kernel.org, syzkaller-bugs@googlegroups.com,
	Dmitry Vyukov <dvyukov@google.com>
Subject: Re: [syzbot] KASAN: use-after-free Read in ucma_destroy_private_ctx
Date: Thu, 6 Jan 2022 14:10:50 +0200	[thread overview]
Message-ID: <YdbcSnIC22e7Rgyp@unreal> (raw)
In-Reply-To: <20220105114521.1449-1-hdanton@sina.com>

On Wed, Jan 05, 2022 at 07:45:21PM +0800, Hillf Danton wrote:
> On Mon, 3 Jan 2022 20:47:02 +0200 Leon Romanovsky wrote:
> > On Mon, Jan 03, 2022 at 09:05:16AM -0800, syzbot wrote:
> > > Hello,
> > > 
> > > syzbot found the following issue on:
> > > 
> > > HEAD commit:    a8ad9a2434dc Merge tag 'efi-urgent-for-v5.16-2' of git://g..
> > > git tree:       upstream
> > > console output: https://syzkaller.appspot.com/x/log.txt?x=10cf5253b00000
> > > kernel config:  https://syzkaller.appspot.com/x/.config?x=1a86c22260afac2f
> > > dashboard link: https://syzkaller.appspot.com/bug?extid=e3f96c43d19782dd14a7
> > > compiler:       gcc (Debian 10.2.1-6) 10.2.1 20210110, GNU ld (GNU Binutils for Debian) 2.35.2
> > > 
> > > Unfortunately, I don't have any reproducer for this issue yet.
> > > 
> > > IMPORTANT: if you fix the issue, please add the following tag to the commit:
> > > Reported-by: syzbot+e3f96c43d19782dd14a7@syzkaller.appspotmail.com
> > > 
> > > ==================================================================
> > > BUG: KASAN: use-after-free in ucma_cleanup_multicast drivers/infiniband/core/ucma.c:491 [inline]
> > > BUG: KASAN: use-after-free in ucma_destroy_private_ctx+0x914/0xb70 drivers/infiniband/core/ucma.c:579
> > > Read of size 8 at addr ffff88801bb74b00 by task syz-executor.1/25529
> > 
> > Jason,
> > 
> > Can it be race between ucma_process_join() and "if (refcount_read(&ctx->ref))"
> > check in ucma_destroy_private_ctx()?
> 
> Given cmpxchg in both ucma_close() and ucma_destroy_id(),
> ucma_destroy_private_ctx() can not run more than once, in addition to what
> is more weird is that the ucma_fops.release either is running in parallel
> to a writer or completes with a writer left behind. Light on if that weirdness
> is down to anything other than syzbot is highly appreciated.

Unless someone can shed the light, the repro will help here/

> 
> 	Hillf
> > 
> > The ucma_process_join() grabbed ctx, but released it in error path,
> > while ucma_destroy_private_ctx() was called without holding any locks?
> > 
> > Thanks
> > 

  parent reply	other threads:[~2022-01-06 12:11 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-03 17:05 [syzbot] KASAN: use-after-free Read in ucma_destroy_private_ctx syzbot
2022-01-03 18:47 ` Leon Romanovsky
     [not found] ` <20220105114521.1449-1-hdanton@sina.com>
2022-01-06 12:10   ` Leon Romanovsky [this message]
2022-01-08  0:10   ` Jason Gunthorpe
2022-01-10  8:30     ` Leon Romanovsky

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=YdbcSnIC22e7Rgyp@unreal \
    --to=leon@kernel.org \
    --cc=dvyukov@google.com \
    --cc=hdanton@sina.com \
    --cc=jgg@ziepe.ca \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rdma@vger.kernel.org \
    --cc=syzbot+e3f96c43d19782dd14a7@syzkaller.appspotmail.com \
    --cc=syzkaller-bugs@googlegroups.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.