Executive brief
Activepieces is an open-source platform used to automate AI workflows. A security flaw in the platform's file download system allowed any registered user to download files belonging to other organizations (tenants) hosted on the same server. While an attacker could not target specific files, they could repeatedly request data to collect a random sample of private workflow attachments from across the entire system.
Technical details
An authorization bypass exists in the `/v1/step-files/signed` endpoint of Activepieces due to insufficient JWT validation and a logic error in the file retrieval service. The endpoint verified the JWT signature but failed to validate the 'audience' claim. Furthermore, the `getFileOrThrow` function in `file.service.ts` lacked a null-check on the `fileId` extracted from the token. When an attacker provides a valid JWT (such as their own session token) that lacks a `fileId` claim, the backend executes a database query for files of type `FLOW_STEP_FILE` without a specific ID filter. This results in PostgreSQL returning the first available file record from the global table, which may belong to any tenant. This allows an authenticated attacker to perform cross-tenant data exfiltration of workflow attachments. The issue is fixed in version 0.83.0 by ensuring the service throws an error if `fileId` is null.
Affected products
- Activepieces Activepieces < 0.83.0
Timeline
- 2026-07-13: advisory: GitHub Security Advisory published
- 2026-07-16: disclosed: NVD publication date
- 2026-05-06: patched: Version 0.83.0 released
References
- https://github.com/activepieces/activepieces/commit/2cb6148010a6c2a22900f4c8b08d75cc5c921d1c
- https://github.com/activepieces/activepieces/commit/afe852f60e39fcc6273d41e11f0765586b5a0e49
- https://github.com/activepieces/activepieces/releases/tag/0.83.0
- https://github.com/activepieces/activepieces/security/advisories/GHSA-9723-fmff-mc24