← back to the archiveCover illustration for “AI coding extensions need an install receipt”
POSTday 156·today·Published ·by Andy Padia

AI coding extensions need an install receipt

In short: A trusted extension ID and version can still hide the wrong build; record its marketplace, install time and artifact digest on every machine.

On 29 October 2026, malicious versions 2.1.312 and 2.1.313 of anthropic.claude-code were served from Cursor's extension marketplace for about eleven hours. The identifier was legitimate. The package was not: it attempted to add an SSH key, open a reverse tunnel and install persistence.

An AI coding extension inventory that records only name and version cannot scope this incident. It needs an install receipt that binds the extension ID and version to its marketplace origin, installation time and artifact digest.

The Cursor incident defeated version-only inventory

Cursor's 29 October notice limits the exposure window to about 2:27 a.m.–1:35 p.m. Pacific time on macOS and Windows. It also says the malicious builds used the expected anthropic.claude-code identifier.

Version alone still does not establish compromise. Cursor says the attacker server is offline and that enabling the local SSH service would fail on most affected hosts because Cursor normally lacked administrator rights. The extension could nevertheless add the attacker's key, send host details and leave persistence artefacts. Uninstalling it may not remove those standalone files.

Microsoft Security Research narrowed the channel further. The malicious packages were never distributed through Microsoft Visual Studio Marketplace or npm, Anthropic's systems were not compromised, and the available evidence limited the incident to Cursor's marketplace.

The same version label can therefore describe different risk depending on source and time. A fleet query for versions 2.1.312 and 2.1.313 finds machines to examine. It cannot tell which bytes reached them.

An AI coding extension install receipt needs five fields

This is editorial judgement, not a Trigent or client deployment. I would keep one row per installed extension on every developer image:

FieldWhat it proves during an incident
Extension IDWhich logical package the editor loaded
VersionWhich release label was presented
Marketplace originWhich distribution boundary supplied it
Install or update timeWhether the machine fell inside the exposure window
Artifact SHA-256Whether the installed bytes match a known build

The receipt supports investigation; it does not certify that a marketplace or signed artifact is safe.

The digest must come from the installed artifact or a trusted deployment record, not from the same catalogue entry being investigated. Cursor published four platform-specific malicious VSIX hashes and a separate payload hash. Those values make a byte-level fleet search possible after the fact. Recording the digest at install time makes the next search faster and preserves evidence when a listing changes.

The receipt changes the first incident-response question

Without provenance, the first question becomes: “Who has this version?” With the receipt, it becomes: “Which machines received this digest from this marketplace during this window?” That query produces a smaller, defensible investigation set.

The receipt does not replace endpoint telemetry. A matching malicious hash shows that the package arrived; it does not show whether privilege-dependent steps succeeded or what an attacker later did. Cursor's indicators and Microsoft's hunting guidance still require checks for the SSH key, persistence files, processes and network activity.

This advances the control in the attacker's secrets inventory. That piece asks whether defenders can find where authority settles on developer machines. This one asks whether they can identify the exact software bytes that gained the chance to search those places.

The number of compromised hosts, any interactive attacker actions and the marketplace compromise mechanism were not established in the primary notices I inspected. The install receipt should narrow uncertainty, not launder it into a clean bill of health.

What's in it for you

  • Add marketplace origin and artifact digest to the extension inventory you already keep.
  • Preserve install time so a short exposure window becomes a query, not a week of interviews.
  • Treat a hash match as an investigation trigger, then use endpoint evidence to determine impact.

Record which extension bytes arrived, from where and when; name plus version is no longer enough.

#coding-agents#developer-tools#incident-response

Sources

  1. cursor.com/blog/claude-code-extension-security-notice
  2. microsoft.com/en-us/security/blog/2026/10/30/inside-malicious-claude-code-branded-cursor-extension-persistent-ssh-backdoor
← older drop
Sales AI needs a buyer-proof clock

related drops

explore all 438 drops →
← back to the archiveday 156