Pipecat Path Traversal Vulnerability in `/files` Endpoint (CVE-2026-44716)
Pipecat's development runner has a path traversal vulnerability in the `/files` endpoint due to lack of input validation when handling the filename parameter, allowing an unauthenticated attacker with network access to read arbitrary files on the server using `%2F`-encoded separators.
A path traversal vulnerability exists in Pipecat’s development runner (src/pipecat/runner/run.py) within the /files endpoint. When the runner is started with the --folder flag, it exposes a GET /files/{filename:path} endpoint. The filename path parameter is vulnerable to directory traversal because it’s directly concatenated with args.folder without proper sanitization. Starlette’s path normalization is bypassed using %2F-encoded slashes. An attacker 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 vulnerability affects pipecat-ai versions >= 0.0.90 and < 1.2.0, and has been confirmed on version 1.1.0.
Attack Chain
- The Pipecat runner is started with the
--folderoption, specifying a directory for file downloads. - The runner exposes a
GET /files/{filename:path}endpoint. - The attacker crafts a malicious URL with
%2F-encoded directory separators (e.g.,..%2F..%2Fetc%2Fpasswd). - The attacker sends an unauthenticated HTTP GET request to the runner’s
/filesendpoint with the crafted URL. - Starlette’s router matches the route, and the
%2F-encoded characters are decoded within thefilenameparameter after routing. - The application concatenates the decoded
filenameparameter with the--folderpath without proper validation or sanitization. - The
os.path.exists()check succeeds because the resolved path (e.g.,/etc/passwd) exists on the system. - The requested file content is returned in the HTTP response, allowing the attacker to read arbitrary files.
Impact
Successful exploitation allows an attacker with network access to the runner to read arbitrary files on the server. This includes sensitive information such as SSH private keys, application credentials, .env files, database files, and system files (e.g., /etc/passwd). In LAN deployments where the runner is exposed on the local network, any host can exploit this without credentials, leading to potential data breaches and system compromise.
Recommendation
- Apply the remediation steps outlined in the advisory by patching or upgrading pipecat-ai to version 1.2.0 or later to resolve CVE-2026-44716.
- Deploy the Sigma rule “Detect Pipecat Path Traversal Attempt via URL Encoding” to identify exploitation attempts in web server logs.
- Monitor network traffic for HTTP requests to the
/filesendpoint containing%2F-encoded characters in the URL to detect potential path traversal attacks.
Detection coverage 2
Detect Pipecat Path Traversal Attempt via URL Encoding
highDetects CVE-2026-44716 exploitation — attempts to exploit path traversal in Pipecat's /files endpoint by using %2F-encoded characters in the URL.
Detect Pipecat Runner Folder Access
infoDetects access to the /files endpoint of a Pipecat runner, indicating potential exploitation attempts.
Detection queries are available on the platform. Get full rules →