← Back to Feed CACHED · 2026-07-31 07:21:11 · CACHE_KEY CVE-2026-5674
CVE-2026-5674 · CWE-427 · Disclosed 2026-07-16

A flaw was found in PipeWire

ASSESSED — NOISGATE V0.5
Vendor
Reassessed
Verdict:
Do you agree?
01 · The Real Story

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.

"Flatpak sandbox escape via PipeWire library hijack — desktop-only, no enterprise-critical role"
02 · The Attack Path

4 steps from start to impact.

STEP 01

Malicious Flatpak app installed

The attacker publishes a trojanized or compromised Flatpak package on Flathub or an internal repo. A user installs and launches it, giving the attacker code execution inside the Flatpak sandbox with minimal portal permissions. No exploit is needed at this stage — the sandbox is working as designed.
Conditions required:
  • User installs and runs a Flatpak application
  • PipeWire with pipewire-pulse is the active audio server
Where this breaks in practice:
  • Enterprise Linux desktops may use curated repos or禁 Flatpak entirely
  • Many enterprises still run PulseAudio natively, not via PipeWire's compat layer
Detection/coverage: Flatpak install audit logs; flatpak list --app inventory; RPM/DEB package audit showing pipewire-pulse installed
STEP 02

Library planted in writable search path

From inside the sandbox, the attacker writes a malicious shared object (.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.
Conditions required:
  • Writable path accessible from inside the sandbox that PipeWire searches on the host side
  • pipewire-pulse loads modules/plugins dynamically
Where this breaks in practice:
  • Exact writable paths depend on Flatpak portal configuration and filesystem overrides
  • SELinux/AppArmor confined PipeWire may block dlopen from unexpected paths
Detection/coverage: File-integrity monitoring on PipeWire library directories; auditd rules for execve/dlopen in ~/.local/share/pipewire or XDG paths
STEP 03

PipeWire loads the rogue library

When pipewire-pulse processes the next client connection or module load, it calls 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.
Conditions required:
  • PipeWire service is running and processes the tainted path
  • No MAC policy blocks the load
Where this breaks in practice:
  • SELinux pipewire_t transitions may deny loading from user-writable dirs on hardened RHEL
  • The attacker gets user-level, not root — lateral movement requires additional privesc
Detection/coverage: EDR/osquery monitoring dlopen calls by pipewire processes; eBPF-based library load tracing
STEP 04

User-context code execution on host

The attacker now has a shell or implant running as the desktop user outside any sandbox. They can access the user's files, SSH keys, browser sessions, and credentials. On a developer workstation this could include source code, cloud tokens, and CI/CD credentials. However, the attacker is still unprivileged — they do not have root and cannot directly pivot to other hosts without additional exploitation.
Conditions required:
  • Successful library load in step 3
Where this breaks in practice:
  • No root access — further privesc needed for system compromise
  • EDR agents should detect anomalous process trees spawned from pipewire
Detection/coverage: EDR behavioral detection for unexpected child processes of pipewire-pulse; SIEM correlation on user-context process anomalies
03 · Intelligence Metadata

The supporting signals.

In-the-Wild ExploitationNo evidence. Not listed on CISA KEV. No known campaigns or threat actor usage as of 2026-07-31.
Proof of ConceptNo public PoC found. No exploit code on GitHub, Exploit-DB, or researcher blogs as of assessment date.
EPSS Score0.00125 — bottom ~12th percentile. Exploitation probability rated very low by the FIRST EPSS model.
KEV StatusNot listed. No CISA KEV entry.
CVSS VectorCVSS: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 VersionsAll 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 VersionNone available. Patches are pending across all tracked distributions (Debian, Amazon Linux 2023, RHEL).
Scanning / ExposureNot 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 Date2026-07-16 — disclosed ~2 weeks ago. No vendor patch yet.
ReporterNot publicly attributed. Red Hat assigned the CVE.
04 · The Call

noisgate verdict.

Final Verdict
DOWNGRADED to MEDIUM (5.5/10)

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.

HIGH Vulnerability existence and mechanism (CWE-427 in pipewire-pulse)
MEDIUM Exact affected version range (no upstream advisory with precise bounds)
HIGH Severity downgrade rationale (desktop-only, no high-value role)

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.

05 · Compensating Control

What to do — in priority order.

  1. Audit and restrict Flatpak installations — Run flatpak list --app across 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.
  2. Enable SELinux enforcing on RHEL/Fedora desktops — SELinux's pipewire_t domain transitions can block dlopen() from user-writable directories, preventing the library hijack even without a patch. Verify with sesearch -A -s pipewire_t -p open that no allow rule grants access to attacker-controlled paths.
  3. 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 .so files. Alert on any new shared object in these paths.
  4. Fall back to native PulseAudio where possible — If pipewire-pulse is 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.
What doesn't work
  • 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-pulse specifically if possible.
06 · Verification

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.

noisgate-verify.sh
BASHREAD-ONLYSAFE
#!/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
fi
07 · Bottom Line

If you remember one thing.

TL;DR
This is a desktop-only Linux vulnerability with no patch available and no enterprise-critical blast radius. For your Monday morning: identify which hosts run 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

  1. CVE Record — CVE-2026-5674
  2. Amazon Linux Security — CVE-2026-5674
  3. Debian Package Tracker — pipewire
  4. PipeWire Official Site
  5. MITRE ATT&CK — DLL Search Order Hijacking (T1574.001)
  6. Flatpak Sandbox Escape Advisory (GHSA-cc2q-qc34-jprg) — related context
  7. CISA Weekly Vulnerability Summary
Peer Review

What defenders are saying.

Submit a review attribution: handle + country only
0 flags selected · stored anonymously
Validation Results

Crowdsourced verification outputs.

Results submitted by users who ran the verification payload against their environment.