Stored XSS in FiftyOne via Dataset Field Descriptions
FiftyOne versions are vulnerable to stored cross-site scripting (XSS) due to improper sanitization of dataset field descriptions, allowing attackers to execute arbitrary scripts in the application origin.
CVE search metadata
CVE search record: CVE-2026-80426. Severity: high. CVSS: 7.1. KEV: no. Product: FiftyOne. Brief: Stored XSS in FiftyOne via Dataset Field Descriptions. Brief link: https://feed.craftedsignal.io/briefs/2026-08-fiftyone-xss/
Voxel51's FiftyOne platform contains a stored cross-site scripting (XSS) vulnerability, tracked as CVE-2026-80426. The vulnerability exists within the 'FieldLabelAndInfo' component, which renders dataset field descriptions using React's 'dangerouslySetInnerHTML' without prior sanitization or escaping. Because these descriptions are stored as part of the dataset schema, the payload persists across database entries and travels with exported or published datasets.
When a victim opens a malicious dataset, the XSS payload executes within the context of the FiftyOne application origin. This origin is shared with the unauthenticated FiftyOne server media route. An attacker can leverage this execution context to read local files on the server or interact with sensitive dataset and operator endpoints, potentially resulting in unauthorized data access or local file disclosure.
Attack Chain
- Attacker crafts a malicious dataset with a crafted XSS payload injected into a field's description string.
- The malicious dataset is exported or distributed to a victim.
- The victim imports the malicious dataset into their instance of FiftyOne.
- The victim navigates to the UI component that displays the malicious dataset's field information.
- The 'FieldLabelAndInfo' component renders the description via 'dangerouslySetInnerHTML', triggering the malicious script.
- The script executes within the FiftyOne origin and makes requests to the unauthenticated media route.
- The script reads arbitrary local files or interacts with internal operator endpoints as the authenticated user.
Impact
Successful exploitation allows for the execution of arbitrary JavaScript within the FiftyOne browser context. This grants an attacker the ability to bypass existing security controls to access sensitive dataset information, trigger operator endpoints, and potentially read local files accessible to the FiftyOne server, impacting data integrity and confidentiality.
Recommendation
- Upgrade FiftyOne to a patched version that sanitizes field descriptions before rendering.
- Avoid importing or opening datasets from untrusted or unverified third-party sources until the patch is applied.
- Restrict network access to the FiftyOne server to trusted internal users to mitigate the impact of the unauthenticated media route.
Immediate actions
Patch FiftyOne to the latest version to address CVE-2026-80426