* [PATCH bluetooth-next] Bluetooth: bcsp: receive data only if registered
@ 2025-08-30 20:03 Ivan Pravdin
2025-09-09 21:00 ` patchwork-bot+bluetooth
0 siblings, 1 reply; 2+ messages in thread
From: Ivan Pravdin @ 2025-08-30 20:03 UTC (permalink / raw)
To: marcel, luiz.dentz, mmandlik, linux-bluetooth, linux-kernel
Cc: Ivan Pravdin, syzbot+4ed6852d4da4606c93da
Currently, bcsp_recv() can be called even when the BCSP protocol has not
been registered. This leads to a NULL pointer dereference, as shown in
the following stack trace:
KASAN: null-ptr-deref in range [0x0000000000000108-0x000000000000010f]
RIP: 0010:bcsp_recv+0x13d/0x1740 drivers/bluetooth/hci_bcsp.c:590
Call Trace:
<TASK>
hci_uart_tty_receive+0x194/0x220 drivers/bluetooth/hci_ldisc.c:627
tiocsti+0x23c/0x2c0 drivers/tty/tty_io.c:2290
tty_ioctl+0x626/0xde0 drivers/tty/tty_io.c:2706
vfs_ioctl fs/ioctl.c:51 [inline]
__do_sys_ioctl fs/ioctl.c:907 [inline]
__se_sys_ioctl+0xfc/0x170 fs/ioctl.c:893
do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
do_syscall_64+0xfa/0x3b0 arch/x86/entry/syscall_64.c:94
entry_SYSCALL_64_after_hwframe+0x77/0x7f
To prevent this, ensure that the HCI_UART_REGISTERED flag is set before
processing received data. If the protocol is not registered, return
-EUNATCH.
Reported-by: syzbot+4ed6852d4da4606c93da@syzkaller.appspotmail.com
Closes: https://syzkaller.appspot.com/bug?extid=4ed6852d4da4606c93da
Tested-by: syzbot+4ed6852d4da4606c93da@syzkaller.appspotmail.com
Signed-off-by: Ivan Pravdin <ipravdin.official@gmail.com>
---
drivers/bluetooth/hci_bcsp.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/bluetooth/hci_bcsp.c b/drivers/bluetooth/hci_bcsp.c
index 664d82d1e613..591abe6d63dd 100644
--- a/drivers/bluetooth/hci_bcsp.c
+++ b/drivers/bluetooth/hci_bcsp.c
@@ -582,6 +582,9 @@ static int bcsp_recv(struct hci_uart *hu, const void *data, int count)
struct bcsp_struct *bcsp = hu->priv;
const unsigned char *ptr;
+ if (!test_bit(HCI_UART_REGISTERED, &hu->flags))
+ return -EUNATCH;
+
BT_DBG("hu %p count %d rx_state %d rx_count %ld",
hu, count, bcsp->rx_state, bcsp->rx_count);
--
2.48.1
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH bluetooth-next] Bluetooth: bcsp: receive data only if registered
2025-08-30 20:03 [PATCH bluetooth-next] Bluetooth: bcsp: receive data only if registered Ivan Pravdin
@ 2025-09-09 21:00 ` patchwork-bot+bluetooth
0 siblings, 0 replies; 2+ messages in thread
From: patchwork-bot+bluetooth @ 2025-09-09 21:00 UTC (permalink / raw)
To: Ivan Pravdin
Cc: marcel, luiz.dentz, mmandlik, linux-bluetooth, linux-kernel,
syzbot+4ed6852d4da4606c93da
Hello:
This patch was applied to bluetooth/bluetooth-next.git (master)
by Luiz Augusto von Dentz <luiz.von.dentz@intel.com>:
On Sat, 30 Aug 2025 16:03:40 -0400 you wrote:
> Currently, bcsp_recv() can be called even when the BCSP protocol has not
> been registered. This leads to a NULL pointer dereference, as shown in
> the following stack trace:
>
> KASAN: null-ptr-deref in range [0x0000000000000108-0x000000000000010f]
> RIP: 0010:bcsp_recv+0x13d/0x1740 drivers/bluetooth/hci_bcsp.c:590
> Call Trace:
> <TASK>
> hci_uart_tty_receive+0x194/0x220 drivers/bluetooth/hci_ldisc.c:627
> tiocsti+0x23c/0x2c0 drivers/tty/tty_io.c:2290
> tty_ioctl+0x626/0xde0 drivers/tty/tty_io.c:2706
> vfs_ioctl fs/ioctl.c:51 [inline]
> __do_sys_ioctl fs/ioctl.c:907 [inline]
> __se_sys_ioctl+0xfc/0x170 fs/ioctl.c:893
> do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
> do_syscall_64+0xfa/0x3b0 arch/x86/entry/syscall_64.c:94
> entry_SYSCALL_64_after_hwframe+0x77/0x7f
>
> [...]
Here is the summary with links:
- [bluetooth-next] Bluetooth: bcsp: receive data only if registered
https://git.kernel.org/bluetooth/bluetooth-next/c/6c7e4432e56e
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2025-09-09 21:00 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-08-30 20:03 [PATCH bluetooth-next] Bluetooth: bcsp: receive data only if registered Ivan Pravdin
2025-09-09 21:00 ` patchwork-bot+bluetooth
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®