pipewire/spa/plugins
Wim Taymans c525cfcced security: reject negative DBus array lengths in Bluetooth transport
Memory Safety: High

dbus_message_iter_get_fixed_array() returns the array length as a
signed int. A malformed DBus message could produce a negative length
value. In the Configuration property handler, the check 'if (!len)'
does not catch negative values, allowing negative lengths to be passed
to malloc() and memcpy() where sign extension to size_t creates
enormous values. The debug logging call spa_debug_log_mem() also
receives the negative length cast to size_t, causing an out-of-bounds
read.

In the Capabilities/Metadata handler, 'if (n)' is similarly true for
negative values, and the negative int assigned to the size_t *size
output parameter corrupts the stored length.

Fix by using 'len <= 0' and 'n > 0' checks respectively, and move
debug logging after validation. Explicitly zero the length on the
negative/zero path to prevent storing corrupted sizes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-27 11:04:52 +02:00
..
aec spa: aec: Add some channel config validation 2026-03-17 12:06:25 +00:00
alsa alsa: acp: don’t override user-selected port on availability changes 2026-04-16 10:45:01 +00:00
audioconvert spa: add spa_alloca that does overflow and limit checks 2026-04-27 10:53:44 +02:00
audiomixer audiomixer: only add the input port to mix_list 2026-03-11 12:36:39 +01:00
audiotestsrc spa: do not use SPA_PROP_live 2026-03-27 18:03:24 +01:00
avb modules: support audio.layout where we can 2025-10-30 12:29:31 +01:00
bluez5 security: reject negative DBus array lengths in Bluetooth transport 2026-04-27 11:04:52 +02:00
control mixer: handle control.ump property 2026-03-25 11:59:43 +01:00
ffmpeg spa: use log topics everywhere 2024-03-11 18:45:21 +02:00
filter-graph spa: add and use spa_overflow macros 2026-04-24 15:55:35 +02:00
jack *: don't include standard C headers inside of extern "C" 2025-05-30 09:48:28 +01:00
libcamera spa: libcamera: use std::span 2026-03-27 09:57:56 +01:00
support spa: system: make spa_poll_event compatible with epoll_events 2026-04-06 10:24:32 +00:00
test spa: do not use SPA_PROP_live 2026-03-27 18:03:24 +01:00
v4l2 v4l2: use 0x as the prefix for hex values 2026-03-09 13:50:38 +01:00
videoconvert audioadapter: remap port id for port_reuse_buffer on target 2026-04-20 07:55:54 +00:00
videotestsrc spa: do not use SPA_PROP_live 2026-03-27 18:03:24 +01:00
volume treewide: access the position information using helpers 2025-10-21 13:06:25 +02:00
vulkan vulkan: fix wrong descriptor image info index 2026-04-21 15:13:03 +00:00
meson.build spa/plugins: revert "Disable alsa plugin on !Linux platforms." 2026-03-12 09:20:05 +00:00