Executive brief
FiftyOne is an open-source tool used by data scientists to build and visualize computer vision datasets. A security vulnerability in its local application server allows malicious websites to bypass browser security boundaries and read sensitive files from the user's computer. If a user visits a malicious site while the FiftyOne server is running, the attacker could silently steal SSH keys, cloud credentials, or private dataset information without any user interaction.
Technical details
The FiftyOne App/API server and its `/media` route unconditionally set the `Access-Control-Allow-Origin: *` header. Because the server is unauthenticated and typically runs on localhost, this permissive CORS policy enables a drive-by data exfiltration attack. A malicious website visited by the user can issue cross-origin requests to `http://localhost:5151/media?filepath=...` to read arbitrary files accessible to the server process, such as `/etc/passwd` or cloud credentials. While Chromium's Private Network Access protections mitigate this, users on Safari or Firefox remain vulnerable. The issue is fixed in version 1.17.0 by defaulting to same-origin only responses.
Affected products
- voxel51 fiftyone < 1.17.0
Timeline
- 2026-06-04: disclosed: Initial publication by developer
- 2026-07-15: advisory: GitHub Advisory published
- 2026-07-15: patched: Fix released in version 1.17.0
References
- https://api.github.com/users/vittorio-prodomo
- https://github.com/vittorio-prodomo
- https://api.github.com/users/vittorio-prodomo/gists%7B/gist_id%7D
- https://api.github.com/users/vittorio-prodomo/repos
- https://avatars.githubusercontent.com/u/32701560?v=4
- https://api.github.com/users/vittorio-prodomo/events%7B/privacy%7D