CVE-2026-5674: Pipewire: pipewire: sandbox escape and arbitrary code execution via malicious library loading
A flaw was found in PipeWire, a multimedia server. This vulnerability allows an attacker to escape sandboxed applications, such as Flatpak, by exploiting PipeWire's PulseAudio compatibility layer. An attacker with minimal permissions within a sandboxed environment can load a malicious library, leading to arbitrary code execution outside the sandbox and potential compromise of the user's system.
Other sources
Summary: An attacker can exploit PipeWire load library vulnerability to escape sandboxed processes.
Requirements To Exploit: A Flatpak app (or Docker container, Snap, etc..) with minimal permissions, like:
--socket=pulseaudio and
--filesystem=/tmp/share/ (basically write access to any host-visible path to drop the malicious library)
Component Affected: gitlab.freedesktop.org/pipewire/pipewire
module-protocol-pulse (pulse-server.c) and module-ladspa-sink (pluginladspa.c)
Version Affected: <= 1.0.5 (likely all versions since the PulseAudio compatibility layer was introduced)
Patch Available: no
Version Fixed: N/A
Cvss: 8.8 High
AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H — Local vector, low complexity, low privileges, no user interaction, changed scope (sandbox escape). High CIA impact on user session. Since a Flatpak are remotely retrieved one could also claim RCE with arbitrary local code execution, but I don’t think it’s a critical class issue.
Impact: I’d say Important (sandbox escape with minimal permissions)
Steps To Reproduce: Build a Flatpak app with --socket=pulseaudio and --filesystem=/tmp/wuzzi:create
From the app, write a .so with an ELF constructor to /tmp/wuzzi/payload.so
Connect to the PulseAudio socket, send PACOMMANDAUTH with 256 arbitrary bytes
Send PACOMMANDLOADMODULE module-ladspa-sink plugin=/tmp/wuzzi/payload.so
PipeWire (outside sandbox) calls dlopen() — constructor executes in full user context
Confirmed on Ubuntu 24.04 (x8664) and Debian 13 (aarch64), PipeWire 1.0.5
Mitigation: Don’t install Flatpaks with audio, or allow any sandbox’d process to connect to pulseaudio socket.
Recommended mitigations from product side. Any one breaks the attack chain:
(1) Validate the cookie against ~/.config/pulse/cookie;
(2) Set pulse.allow-module-loading = false (option exists since May 2024);
(3) Restrict dlopen() paths in module-ladspa-sink to /usr/lib/ladspa/ and /usr/lib64/ladspa/.
— Red Hat
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Configuration
Set pulse.allow-module-loading = false to prevent PulseAudio compatibility layer module loading (option exists since May 2024).
PipeWire (PulseAudio compatibility / module loading) pulse.allow-module-loading = false - Configuration
Restrict dlopen() plugin paths used by module-ladspa-sink to only /usr/lib/ladspa/ and /usr/lib64/ladspa/.
PipeWire module-ladspa-sink (plugin_ladspa.c) dlopen() paths restriction = /usr/lib/ladspa/ and /usr/lib64/ladspa/ - Compensating control
Do not install Flatpaks with audio, or prevent sandboxed processes from connecting to the pulseaudio socket (e.g., block/deny access to the pulseaudio socket for sandboxed apps/containers).
Event History
Frequently Asked Questions
What is the severity of CVE-2026-5674?
CVE-2026-5674 has a severity score of 8.8, indicating it is considered high risk.
How does CVE-2026-5674 exploit occur?
CVE-2026-5674 allows an attacker to escape sandboxed applications by loading a malicious library through PipeWire's PulseAudio compatibility layer.
Who is affected by CVE-2026-5674?
Users of PipeWire who run sandboxed applications like Flatpak may be affected by CVE-2026-5674.
What are the potential impacts of CVE-2026-5674?
CVE-2026-5674 can lead to arbitrary code execution and data compromise by enabling sandbox escape.
How can I mitigate the risks associated with CVE-2026-5674?
To mitigate CVE-2026-5674, ensure PipeWire is updated to the latest version where the vulnerability has been patched.