All stories

Cursor traces breach to leaked Fireworks key

Cursor says an attacker used an access key that its inference vendor Fireworks exposed to steal training traces, then pivoted into internal tools and pushed a backdoored Claude Code extension.

Cursor has published the findings of a two-week investigation into the incident behind the malicious Claude Code extension that, as we reported earlier, turned up in its VS Code extension marketplace on October 29.

According to Cursor, Fireworks exposed an access key that Cursor had issued to it. The attacker used that key to copy data from a read-only storage bucket Cursor used to share data with Fireworks. The bucket held coding agent traces, mostly from 2025, taken from sessions that were not in Privacy Mode and that Cursor was permitted to use for model training. Traces were exposed for fewer than 0.05% of users. Some traces contained unredacted credentials, and those exposed API credentials for less than 0.01% of customers.

The attacker used those credentials to get into several SaaS tools Cursor uses. From there they reached archived non-production source repositories, customer support data and emails, product usage metrics and contact details, summaries of some agent conversations, and credentials that users had sent to Cursor support. One stolen credential let them place tampered copies of the extension, versions 2.1.312 and 2.1.313, on Cursor's marketplace cache. The upstream source, Open VSX, was never affected. Up to 5,000 users may have received the malicious build during a window of about 11 hours. Cursor says uninstalling the extension alone may not be enough to clean an affected machine.

Cursor says the attacker never touched its production infrastructure, customer repositories, release signing keys, Privacy Mode data or the system it ships the Cursor app from. It last saw attacker activity on November 1, when it was blocked. Cursor has moved all inference traffic off Fireworks and rotated all internal credentials. Fireworks' response is not included in Cursor's post.

Sources