Josh Wu
bf0784dde4
Merge pull request #912 from ibondarenko1/fix/empty-pdu-crash
...
fix: add input validation to prevent remote crash from empty/malforme…
2026-04-20 14:36:48 +08:00
Ievgen Bondarenko
444f43f6a3
fix: address review feedback - use InvalidPacketError and abort on buffer overflow
...
- att.py: raise core.InvalidPacketError instead of generic ValueError
- smp.py: raise core.InvalidPacketError instead of generic ValueError
- hfp.py: add MAX_BUFFER_SIZE class constant (64KB)
- hfp.py: drop incoming data when it would overflow buffer instead of
truncating, preserving existing partial-packet state
Per review comments on PR #912 by @zxzxwu.
2026-04-16 11:24:09 -07:00
Ievgen Bondarenko
0a78e7506b
fix: add input validation to prevent remote crash from empty/malformed PDUs
...
Add length checks in from_bytes() for ATT and SMP protocol parsers
to prevent IndexError crashes from empty PDUs sent by remote Bluetooth
devices. Also add buffer size limit and UTF-8 error handling in HFP
protocol to prevent memory exhaustion and decode crashes.
- bumble/att.py: validate PDU is non-empty before accessing pdu[0]
- bumble/smp.py: validate PDU is non-empty before accessing pdu[0]
- bumble/hfp.py: limit buffer to 64KB, handle invalid UTF-8 gracefully
These issues can be triggered by a remote Bluetooth device sending
malformed packets, causing denial of service on the host.
2026-04-16 01:43:41 -07:00
Gilles Boccon-Gibod
f7cc6f6657
release command semaphore after timeout
2026-04-15 16:54:54 +02:00
Josh Wu
3ded9014d3
Merge pull request #905 from markusjellitsch/feature/debug-keys
...
Feature - Add SMP Debug Mode (Core Vol.3, Part H)
2026-04-09 15:36:42 +08:00
Markus Jellitsch
dc17f4f1ca
remove asserts
2026-04-08 20:58:47 +02:00
Markus Jellitsch
3f65380c20
remove comment
2026-04-03 23:19:43 +02:00
Markus Jellitsch
85f6b10983
run formatter
2026-04-03 23:06:24 +02:00
Markus Jellitsch
ee09e6f10d
add smp_debug_mode config flag to enable debug keys during device init
2026-04-03 23:03:51 +02:00
Markus Jellitsch
c3daf4a7e1
implement debug mode for smp manager using defined private / public key pair
2026-04-03 23:02:15 +02:00
Josh Wu
3af623be7e
Keys: Remove appdirs and improve typing
2026-03-31 16:25:15 +08:00
Josh Wu
0ba9e5c317
Add read classic remote features support
2026-03-20 18:32:52 +08:00
Josh Wu
ad4bb1578b
Make ConnectionPHY dataclass
2026-03-11 21:41:48 +08:00
Josh Wu
4af65b381b
Merge pull request #820 from zxzxwu/sdp
...
SDP: Migrate to dataclasses
2026-03-04 13:45:39 +08:00
Josh Wu
28e485b7b3
Hash and cache 128 bytes of UUID
2026-03-03 17:54:27 +08:00
Josh Wu
1198f2c3f5
SDP: Make PDU dataclasses
2026-03-03 02:07:08 +08:00
Josh Wu
80aaf6a2b9
SDP: Make DataElement and ServiceAttribute dataclasses
2026-03-03 01:28:40 +08:00
Josh Wu
c158f25b1e
Emulation: Support LE Read features
2026-03-01 02:24:55 +08:00
Josh Wu
d9c9bea6cb
HFP: Fix response handling
2026-02-25 00:39:45 +08:00
Josh Wu
5ebfaae74e
Controller: Use new return parameter types and add _send_hci_command_status()
2026-02-11 13:21:47 +08:00
Josh Wu
e6175f85fe
Merge pull request #887 from zxzxwu/gap
...
Remove bumble.gap
2026-02-11 13:15:39 +08:00
Josh Wu
f9ba527508
Merge pull request #821 from zxzxwu/smp
...
Migrate most enums
2026-02-11 13:15:22 +08:00
Josh Wu
a407c4cabf
Merge pull request #883 from zxzxwu/avrcp
...
AVRCP: More delegation and bugfix
2026-02-11 13:13:16 +08:00
Josh Wu
797cd216d4
SMP: Migrate all enums
2026-02-10 20:08:01 +08:00
Josh Wu
e2e8c90e47
Remove bumble.gap
2026-02-10 17:40:22 +08:00
Josh Wu
3d5648cdc3
Replace long if-else with match-case
2026-02-10 17:35:39 +08:00
timrid
81d9adb983
delete only the required connection
2026-02-05 20:50:58 +01:00
timrid
79e5974946
Multiple le connections are now working correctly
2026-02-05 13:15:57 +01:00
Josh Wu
657451474e
AVRCP: Address type errors
2026-02-05 16:01:21 +08:00
Josh Wu
9f730dce6f
AVRCP: Delegate Track Changed
2026-02-05 15:50:06 +08:00
Josh Wu
1a6be95a7e
AVRCP: Delegate UID and Addressed Player
2026-02-05 15:44:11 +08:00
Josh Wu
aea5320d71
AVRCP: Add Play Item delegation
2026-02-05 15:34:03 +08:00
Josh Wu
91cb1b1df3
AVRCP: Add available player changed event
2026-02-05 15:25:17 +08:00
Josh Wu
81bdc86e52
AVRCP: Delegate Player App Settings
2026-02-05 15:22:11 +08:00
Josh Wu
f23cad34e3
AVRCP: Use match-case
2026-02-04 22:23:53 +08:00
Josh Wu
30fde2c00b
AVRCP: Fix wrong packet field specs
2026-02-04 18:05:25 +08:00
Josh Wu
116d9b26bb
Fix wrong LE event codes
2026-02-04 15:03:08 +08:00
Gilles Boccon-Gibod
3894b14467
better handling of complete/status events
2026-02-02 23:28:40 -08:00
Gilles Boccon-Gibod
e62f947430
add workaround for some buggy controllers
2026-02-02 13:19:55 -08:00
Gilles Boccon-Gibod
dcb8a4b607
Merge pull request #877 from google/gbg/hci-fixes
...
fix a few HCI types and make the bridge more robust
2026-02-02 11:19:28 -08:00
Gilles Boccon-Gibod
81985c47a9
remove superfluous statement
2026-02-02 11:12:28 -08:00
Gilles Boccon-Gibod
7118328b07
Merge pull request #879 from google/gbg/resolve-when-bonded
...
resolve addresses when connecting to bonded peers
2026-01-31 11:09:55 -08:00
Gilles Boccon-Gibod
5dc01d792a
address PR comments
2026-01-31 10:55:58 -08:00
Gilles Boccon-Gibod
255f357975
resolve when bonded
2026-01-30 21:53:01 -08:00
Gilles Boccon-Gibod
2a59e19283
fix comment
2026-01-29 19:09:46 -08:00
Josh Wu
34f5b81c7d
AVRCP: Delegate Company ID capabilities
2026-01-29 22:13:14 +08:00
Josh Wu
d34d6a5c98
AVRCP: Delegate Playback Status
2026-01-29 21:33:57 +08:00
Josh Wu
aedc971653
AVRCP: Add SDP record class and finder
2026-01-29 16:00:50 +08:00
Josh Wu
c6815fb820
AVRCP: Delegate passthrough key event
2026-01-29 14:50:14 +08:00
Gilles Boccon-Gibod
f44d013690
make bridge more robust
2026-01-27 09:47:52 -08:00