lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Sun, 26 Jan 2020 15:20:04 +0200 From: Johan Hedberg <johan.hedberg@...il.com> To: Dan Carpenter <dan.carpenter@...cle.com> Cc: Marcel Holtmann <marcel@...tmann.org>, syzbot <syzbot+eba992608adf3d796bcc@...kaller.appspotmail.com>, "David S. Miller" <davem@...emloft.net>, linux-bluetooth@...r.kernel.org, netdev@...r.kernel.org, syzkaller-bugs@...glegroups.com Subject: Re: [PATCH] Bluetooth: Fix race condition in hci_release_sock() Hi Dan, On Wed, Jan 15, 2020, Dan Carpenter wrote: > Syzbot managed to trigger a use after free "KASAN: use-after-free Write > in hci_sock_bind". I have reviewed the code manually and one possibly > cause I have found is that we are not holding lock_sock(sk) when we do > the hci_dev_put(hdev) in hci_sock_release(). My theory is that the bind > and the release are racing against each other which results in this use > after free. > > Reported-by: syzbot+eba992608adf3d796bcc@...kaller.appspotmail.com > Signed-off-by: Dan Carpenter <dan.carpenter@...cle.com> > --- > Not tested! Please review very very carefully! > > I feel like maybe someone should audit the (struct proto_ops)->release() > functions because there may be similar bugs to this in other drivers. > > net/bluetooth/hci_sock.c | 3 +++ > 1 file changed, 3 insertions(+) The patch looks correct to me since it's following the same locking conventions as all the other socket callbacks in hci_sock.c. I also verified that it doesn't cause regressions in the various socket testers we have in user space BlueZ (e.g. tools/l2cap-tester). The patch is now applied to the bluetooth-next tree. Thanks! Johan
Powered by blists - more mailing lists