CVE-2026-44716·Python vulnerability
Pipecat is an open-source Python framework for building real-time voice and multimodal conversational agents. From version 0.0.90 to before version 1.2.0, a path traversal vulnerability exists in Pipecat's development runner (src/pipecat/runner/run.py). When the runner is started with the --folder flag, it exposes a GET /files/{filename:path} download endpoint. The filename path parameter is concatenated directly onto args.folder with no containment check. Starlette normalises literal ../ sequences in URLs, but %2F-encoded slashes bypass this normalisation: the path parameter is URL-decoded after routing, so ..%2F..%2Fetc%2Fpasswd resolves to a path two levels above args.folder. An attacker with network access to the runner can read any file the pipecat process has permission to access — including SSH private keys, credentials, and system files — with a single unauthenticated HTTP request. This issue has been patched in version 1.2.0.
- Severity
- high
- Software
- Python
- Fixed in
- 1.2.0
- Published
- 2026-06-10
Affected versions
From: 0.0.90
Until: 1.2.0
Fixed in: 1.2.0
How to fix this CVE
Upgrade Pipecat to version 1.2.0 or later to patch the path traversal vulnerability in the development runner's file download endpoint. If you are running Pipecat with the --folder flag exposed to untrusted networks, immediately restrict network access to the runner until the upgrade is completed. Review your logs for any suspicious file access attempts targeting paths outside your intended folder.
sudo dnf upgrade python3-pipecatDefensia detects this vulnerability
What an exploitation attempt looks like
Sample log line indicative of exploitation attempts:
GET /files/.*\.\.%2F|GET /files/.*\.\.%2F.*\.\.(passwd|ssh|key|credentials)WAF mitigation (if patching is not yet possible)
Add this rule to your WAF to block exploitation attempts while you schedule the patch.
Block requests to GET /files/ endpoint containing URL-encoded path traversal sequences (%2F, %2e%2e). Implement a whitelist of allowed filenames and reject any requests containing path separators or parent directory references. Consider requiring authentication for the /files/ endpoint.How to check if you are affected
- Check Pipecat version: pip show pipecat | grep Version
- Verify if the runner is active: ps aux | grep 'pipecat.*--folder' to see if the vulnerable --folder flag is in use
- Search logs for GET /files/ requests: grep -r 'GET /files/' /var/log/ to identify any file download attempts
- Confirm the fix: pip show pipecat should report version 1.2.0 or higher after upgrade
Indicators of compromise
- GET /files/ endpoint requests with %2F or %2e%2e sequences
- Access attempts to /files/ endpoints targeting /etc/passwd, ~/.ssh/, or credential paths
FAQ
What is CVE-2026-44716?
CVE-2026-44716 is a path traversal vulnerability in Pipecat's development runner that allows unauthenticated attackers to download arbitrary files from the server by encoding path traversal sequences in HTTP requests to the /files/ endpoint.
Is CVE-2026-44716 being actively exploited?
No, this vulnerability is not currently listed on the CISA Known Exploited Vulnerabilities (KEV) catalog and no public exploit code is available.
What versions of Pipecat are affected by CVE-2026-44716?
Pipecat versions 0.0.90 through 1.1.x are vulnerable; version 1.2.0 and later contain the fix.
How do I check if my server is vulnerable to CVE-2026-44716?
Run: pip show pipecat | grep Version. If the version is below 1.2.0 and you use the --folder flag, your installation is vulnerable.
Does Defensia detect CVE-2026-44716?
Yes — Defensia's CVE advisory scanner compares installed package versions against the NVD database. If Pipecat is installed on a monitored server, CVE-2026-44716 will appear in your dashboard with remediation steps.
Related Python CVEs
References
Track CVEs across your fleet automatically
Defensia scans your Linux servers and tells you exactly which ones are running vulnerable versions — including CVE-2026-44716. Free for 1 server.
Get started free