Bug 2503650 (CVE-2026-16473) - CVE-2026-16473 sbc: sbc: heap out-of-bounds read via crafted SBC audio frame
Summary: CVE-2026-16473 sbc: sbc: heap out-of-bounds read via crafted SBC audio frame
Keywords:
Status: NEW
Alias: CVE-2026-16473
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Product Security
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2026-07-21 14:35 UTC by OSIDB Bzimport
Modified: 2026-07-22 10:04 UTC (History)
2 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed:
Embargoed:


Attachments (Terms of Use)

Description OSIDB Bzimport 2026-07-21 14:35:48 UTC
In sbc versions 1.0 through 2.0 (upstream HEAD 2.2), sbc_unpack_frame_internal() in sbc/sbc.c has an off-by-one error in the per-sample bit-reader bound check. At line 502 (v2.0) / 509 (v1.0), the guard `if (consumed > len * 8)` uses `>` instead of `>=`, allowing the cumulative bit position `consumed` to reach exactly `len * 8`. The next statement indexes `data[consumed >> 3]` which equals `data[len]`, reading one byte past the end of the input buffer.

A 14-byte attacker-controlled SBC payload triggers the over-read deterministically. AddressSanitizer reports a heap-buffer-overflow at the read site. The bug was introduced in commit feb1bd57 (2011-10-19) and affects every release since.

The vulnerable decode path is the public sbc_decode() entry point, called by all SBC audio consumers: PulseAudio Bluetooth module, PipeWire Bluetooth module, ofono, GStreamer sbcparse/sbcdec plugins, and any application linking libsbc directly. SBC is the mandatory A2DP codec, so the attack surface includes any device that decodes Bluetooth audio.


Note You need to log in before you can comment on or make changes to this bug.