Files
bumble_mirror/bumble
ibondarenko1 b874e26a4f avdtp: bound message assembler to drop truncated PDUs (DoS prevention)
A remote peer can send an AVDTP frame shorter than the assembler expects.
The current MessageAssembler.on_pdu() unconditionally accesses pdu[0],
pdu[1], and (for START packets) pdu[2], so a 0-, 1-, or 2-byte frame
raises IndexError. The exception propagates up through L2CAP's read loop
and tears down the channel — same DoS class as #912 (empty ATT PDU) and
#914 (unbounded SDP recursion).

Fix: validate length before each access. Empty PDUs and packets shorter
than the type-specific minimum are logged and dropped; the assembler
stays alive so the L2CAP channel is not torn down.

- bumble/avdtp.py: length guards in MessageAssembler.on_pdu before
  accessing pdu[0], pdu[1], pdu[2].
- tests/avdtp_test.py: regression test covering empty PDU, 1-byte SINGLE,
  1-byte START, 2-byte START — all four would have raised IndexError
  pre-fix; assembler now drops without raising.
2026-04-26 18:16:15 -07:00
..
2026-01-01 03:25:32 +08:00
2026-01-12 13:16:49 +08:00
2026-02-10 17:35:39 +08:00
2026-01-01 03:25:32 +08:00
2026-01-12 13:16:49 +08:00
2026-02-25 00:39:45 +08:00
2026-01-27 09:47:52 -08:00
2026-01-01 03:25:32 +08:00
2026-03-11 21:41:48 +08:00
2026-01-01 03:25:32 +08:00
2026-01-01 03:25:32 +08:00
2026-04-03 23:06:24 +02:00
2026-01-01 03:25:32 +08:00
2026-01-15 12:06:05 +08:00
2026-01-01 03:25:32 +08:00
2026-01-12 13:16:49 +08:00
2026-01-22 23:16:25 +08:00
2026-01-01 03:25:32 +08:00
2026-03-01 02:24:55 +08:00
2025-07-27 15:02:42 -07:00
2026-02-10 20:08:01 +08:00
2026-01-12 13:16:49 +08:00
2025-08-21 16:38:58 -07:00
2026-01-22 17:49:58 +01:00
2026-01-01 03:25:32 +08:00