Leaving the kiddie pool: a sandboxed Flatpak app can load a rogue library through PipeWire's PulseAudio shim and run code on the host as your user
CVE-2026-5674 is an uncontrolled search path element (CWE-427) in PipeWire's pipewire-pulse PulseAudio compatibility layer. When a Flatpak-sandboxed application connects to the PulseAudio socket served by PipeWire, the service resolves shared libraries using a search path that the sandboxed process can influence. A malicious or compromised Flatpak app can place a crafted .so in a writable path, and PipeWire will load it outside the sandbox boundary, giving the attacker user-level code execution on the host. All current PipeWire releases are affected — Debian tracks versions from 0.3.65 through 1.6.8, and no upstream fix has been released yet. RHEL 9, Fedora 38+, Ubuntu 22.10+, and Debian Trixie all ship PipeWire as the default audio server on desktop installations.
The vendor's HIGH / 8.8 rating reflects the real scope-change math: the CVSS vector correctly captures S:C because the attack crosses the Flatpak sandbox boundary. But the score overstates the risk to a typical 10,000-host enterprise. PipeWire is a *desktop multimedia daemon* — it does not run on headless servers, domain controllers, hypervisors, or CI/CD runners. The attack requires the victim to already be running a malicious or compromised Flatpak app, and the escape yields user-context execution, not root. For most enterprise fleets where Linux desktops are a single-digit percentage of the estate and Flatpak adoption is limited to developer workstations, the real-world exposure is narrow enough to justify a downgrade to MEDIUM.
4 steps from start to impact.
Malicious Flatpak app installed
- User installs and runs a Flatpak application
- PipeWire with pipewire-pulse is the active audio server
- Enterprise Linux desktops may use curated repos or禁 Flatpak entirely
- Many enterprises still run PulseAudio natively, not via PipeWire's compat layer
flatpak list --app inventory; RPM/DEB package audit showing pipewire-pulse installedLibrary planted in writable search path
.so) to a directory that PipeWire's PulseAudio compatibility layer includes in its library search path. CWE-427 means PipeWire does not restrict or validate the search path before calling dlopen(). The attacker needs write access to a directory the host-side PipeWire process will search, which the Flatpak sandbox's filesystem permissions allow through the PulseAudio socket or shared runtime paths.- Writable path accessible from inside the sandbox that PipeWire searches on the host side
- pipewire-pulse loads modules/plugins dynamically
- Exact writable paths depend on Flatpak portal configuration and filesystem overrides
- SELinux/AppArmor confined PipeWire may block dlopen from unexpected paths
auditd rules for execve/dlopen in ~/.local/share/pipewire or XDG pathsPipeWire loads the rogue library
dlopen() on the attacker-controlled .so. Because PipeWire runs outside the Flatpak sandbox — as the logged-in user on the host — the malicious code executes with the user's full host permissions, bypassing all Flatpak restrictions. This is the sandbox escape.- PipeWire service is running and processes the tainted path
- No MAC policy blocks the load
- SELinux
pipewire_ttransitions may deny loading from user-writable dirs on hardened RHEL - The attacker gets user-level, not root — lateral movement requires additional privesc
dlopen calls by pipewire processes; eBPF-based library load tracingUser-context code execution on host
- Successful library load in step 3
- No root access — further privesc needed for system compromise
- EDR agents should detect anomalous process trees spawned from pipewire
pipewire-pulse; SIEM correlation on user-context process anomaliesThe supporting signals.
| In-the-Wild Exploitation | No evidence. Not listed on CISA KEV. No known campaigns or threat actor usage as of 2026-07-31. |
|---|---|
| Proof of Concept | No public PoC found. No exploit code on GitHub, Exploit-DB, or researcher blogs as of assessment date. |
| EPSS Score | 0.00125 — bottom ~12th percentile. Exploitation probability rated very low by the FIRST EPSS model. |
| KEV Status | Not listed. No CISA KEV entry. |
| CVSS Vector | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H — Local access, low privilege, scope change (sandbox→host). The S:C drives the 8.8 score; without it this would be ~7.8. |
| Affected Versions | All current PipeWire releases with pipewire-pulse enabled. Debian tracks 0.3.65 (oldstable) through 1.6.8 (sid). RHEL 9.x, Fedora 38+, Ubuntu 22.10+ ship PipeWire by default on desktop. |
| Fixed Version | None available. Patches are pending across all tracked distributions (Debian, Amazon Linux 2023, RHEL). |
| Scanning / Exposure | Not a network-facing service — Shodan/Censys/GreyNoise are not relevant. Exposure is limited to hosts with pipewire-pulse installed. Check with rpm -q pipewire-pulseaudio or dpkg -l pipewire-pulse. |
| Disclosure Date | 2026-07-16 — disclosed ~2 weeks ago. No vendor patch yet. |
| Reporter | Not publicly attributed. Red Hat assigned the CVE. |
noisgate verdict.
The single most decisive factor is deployment-role limitation: PipeWire is a desktop multimedia daemon that does not run on servers, domain controllers, hypervisors, CI/CD systems, or any component in the high-value-role catalog — the blast radius is capped at a single user's desktop session. Combined with the requirement for a pre-existing malicious Flatpak app (the attacker must already have sandboxed code execution), the real-world enterprise exposure population is narrow enough to justify a downgrade from HIGH to MEDIUM.
Why this verdict
- Attack prerequisite narrows population: The attacker must already have code running inside a Flatpak sandbox on the target host. This implies either a supply-chain compromise of a Flatpak app or social engineering of a desktop user — not a remotely exploitable condition.
- Role multiplier — no high-value role applies: PipeWire is a desktop audio/video daemon. It does not run on domain controllers, hypervisors, backup servers, CI/CD runners, network edge appliances, or any fleet-critical infrastructure component. The blast radius of successful exploitation is a single user's desktop session (host-level, user-context). This places it firmly in category (a) low-value role.
- User-context only, no privilege escalation: The sandbox escape yields code execution as the logged-in desktop user, not root. The attacker cannot directly pivot to other hosts or escalate to system-level without a separate privesc vulnerability.
- No exploitation evidence or PoC: EPSS is 0.00125, no KEV listing, no public PoC, and no observed campaigns. Weaponization friction is currently high.
- Enterprise Linux desktop population is small: In a typical 10,000-host enterprise, Linux desktops represent <10% of endpoints, and Flatpak usage is concentrated on developer workstations — further narrowing the exposed population to low single-digit percentages.
Why not higher?
There is no high-value-role deployment scenario for PipeWire — it is not a hypervisor, identity provider, backup system, or network edge appliance. The attack requires pre-existing sandboxed code execution (not remote access), yields only user-context permissions, and has no public PoC or exploitation evidence. No floor-raising condition from the role catalog applies.
Why not lower?
The sandbox escape is real and architecturally significant — Flatpak's security model depends on containment, and this bug breaks it. On developer workstations with cloud credentials, SSH keys, and source code, the user-context blast radius is meaningful. The scope change (S:C) in the CVSS vector is legitimate. Additionally, no patch exists yet, meaning defenders cannot fully remediate even if they want to.
What to do — in priority order.
- Audit and restrict Flatpak installations — Run
flatpak list --appacross your Linux desktop fleet and remove untrusted or unnecessary apps. Restrict Flatpak installs to curated repos via policy. This eliminates the primary attack entry point. No mitigation SLA applies for MEDIUM — fold this into your 365-day remediation cycle. - Enable SELinux enforcing on RHEL/Fedora desktops — SELinux's
pipewire_tdomain transitions can blockdlopen()from user-writable directories, preventing the library hijack even without a patch. Verify withsesearch -A -s pipewire_t -p openthat no allow rule grants access to attacker-controlled paths. - Deploy file-integrity monitoring on PipeWire paths — Add AIDE or osquery rules monitoring
~/.local/share/pipewire/,/usr/lib/pipewire-*, and XDG runtime directories for unexpected.sofiles. Alert on any new shared object in these paths. - Fall back to native PulseAudio where possible — If
pipewire-pulseis not needed for Flatpak audio, switch affected desktops to native PulseAudio (systemctl --user disable pipewire-pulse && systemctl --user enable pulseaudio). This removes the vulnerable component entirely.
- Network firewalls / WAF / IDS — PipeWire is not a network service. This is a local library-loading bug; no network-level control can prevent it.
- Patching PipeWire — No upstream fix exists yet as of 2026-07-31. You cannot patch your way out of this one today.
- Disabling PipeWire entirely — Removing PipeWire breaks desktop audio on modern RHEL 9 / Fedora / Ubuntu, which may not be acceptable for developer workstations. Target
pipewire-pulsespecifically if possible.
Crowdsourced verification payload.
Run this script on each Linux desktop host you want to check. Execute as the logged-in desktop user (no root needed): bash check_cve_2026_5674.sh. It checks whether pipewire-pulse is installed and running, and whether any Flatpak apps are present — both conditions required for exploitation.
#!/usr/bin/env bash
# check_cve_2026_5674.sh — CVE-2026-5674 PipeWire sandbox escape exposure check
# Run as the desktop user. No root required.
# Exit codes: 0=VULNERABLE, 1=PATCHED, 2=UNKNOWN
set -euo pipefail
VULNERABLE=0
PATCHED=0
UNKNOWN=0
# Check if pipewire-pulse is installed
PW_PULSE_INSTALLED=false
if command -v pipewire-pulse >/dev/null 2>&1; then
PW_PULSE_INSTALLED=true
elif dpkg -l pipewire-pulse 2>/dev/null | grep -q '^ii'; then
PW_PULSE_INSTALLED=true
elif rpm -q pipewire-pulseaudio >/dev/null 2>&1; then
PW_PULSE_INSTALLED=true
fi
# Check if pipewire-pulse is running
PW_PULSE_RUNNING=false
if pgrep -x pipewire-pulse >/dev/null 2>&1; then
PW_PULSE_RUNNING=true
elif systemctl --user is-active pipewire-pulse.service >/dev/null 2>&1; then
PW_PULSE_RUNNING=true
fi
# Check if Flatpak is installed and apps are present
FLATPAK_APPS=false
if command -v flatpak >/dev/null 2>&1; then
APP_COUNT=$(flatpak list --app 2>/dev/null | wc -l)
if [ "$APP_COUNT" -gt 0 ]; then
FLATPAK_APPS=true
fi
fi
# Get PipeWire version
PW_VERSION="unknown"
if command -v pipewire >/dev/null 2>&1; then
PW_VERSION=$(pipewire --version 2>/dev/null | grep -oP '[0-9]+\.[0-9]+\.[0-9]+' | head -1 || echo "unknown")
fi
echo "=== CVE-2026-5674 Exposure Check ==="
echo "PipeWire version: $PW_VERSION"
echo "pipewire-pulse installed: $PW_PULSE_INSTALLED"
echo "pipewire-pulse running: $PW_PULSE_RUNNING"
echo "Flatpak apps present: $FLATPAK_APPS"
echo ""
# No patch exists yet — all versions with pipewire-pulse are vulnerable
if [ "$PW_PULSE_INSTALLED" = true ]; then
if [ "$FLATPAK_APPS" = true ]; then
echo "VULNERABLE — pipewire-pulse is installed and Flatpak apps are present. No patch available."
exit 0
else
echo "VULNERABLE — pipewire-pulse is installed (no Flatpak apps detected, but component is exposed). No patch available."
exit 0
fi
else
echo "PATCHED — pipewire-pulse is not installed. System is not affected by CVE-2026-5674."
exit 1
fiIf you remember one thing.
pipewire-pulse with Flatpak apps using the verification script, then prioritize those for compensating controls (SELinux enforcement, Flatpak app audit, FIM on PipeWire library paths). Since the noisgate reassessed severity is MEDIUM, there is no mitigation SLA — go straight to the noisgate remediation SLA of 365 days, which gives you time to apply the upstream patch once it ships. If your Linux desktop population is small and well-managed, this can safely sit in backlog behind your CRITICAL and HIGH items. The one exception: if you have developer workstations with cloud credentials and untrusted Flatpak apps, tighten those down sooner by switching them to native PulseAudio or removing unnecessary Flatpaks. Monitor upstream PipeWire releases and your distro's security tracker for the fix.Sources
What defenders are saying.
Crowdsourced verification outputs.
Results submitted by users who ran the verification payload against their environment.