{
  "version": "2",
  "id": "https://freelancenews.online/news/community-post-warns-cursor-extension-ids-can-resolve-to-different-e684b539",
  "title": "Community Post Warns Cursor Extension IDs Can Resolve to Different Publishers Than VS Code",
  "summary": "A dev.to write-up argues that because Cursor cannot use Microsoft's marketplace, the same publisher.extension name may install different code from Open VSX, and it points to a July 2025 malicious extension and three OX Security CVEs as evidence of drift risk.",
  "body": "A community post on dev.to contends that teams migrating from VS Code to Cursor may not be installing the extensions they believe they are. The author's core assertion is that Cursor has no access to Microsoft's extension marketplace, with the result that a publisher.extension identifier developers trust in VS Code can resolve to a different publisher delivering different code. The piece presents this as an unexamined blind spot rather than a disclosed incident at any named organization, and it is an author claim on a community platform, not an independently verified finding.\n\nA registry swap is the mechanism outlined in the post. The author claims that Microsoft's marketplace terms restrict that marketplace to VS Code alone, so forks are contractually excluded. Consequently, extension search and downloads in Cursor are routed through its own proxy, which sits in front of Open VSX, the open registry. Cursor's own documentation, the post notes, admits the result: on Open VSX, a given publisher.extension name might refer to different code or a different publisher compared with Microsoft's marketplace.\n\nThe author adds that for certain popular extensions that never reached Open VSX, Cursor ships its own replacement builds under an \"Anysphere\" publisher name. That detail matters for auditing, because an installed extension whose publisher reads Anysphere is not necessarily the original vendor's build. The post does not enumerate which extensions receive this treatment, leaving the scope of substitution open.\n\nVersion drift forms the second half of the argument. Even where the publisher matches across registries, the author says Open VSX copies are published separately, nothing guarantees parity, and there is no lockfile or pinning mechanism for IDE extensions. Auto-update is described as enabled by default, so the artifact a team vetted and the artifact running a month later are not necessarily identical.\n\nAs evidence that drift has consequences, the post cites an incident from July 2025 in which a malicious \"Solidity Language\" extension on Open VSX executed a PowerShell script during installation. Per the author, it accumulated 50,000 downloads before removal, and one Cursor user in the crypto industry lost roughly $500,000, a figure credited to Kaspersky research. The post also reports that Microsoft removed the same or a similar submission from its own marketplace within seconds, while the Open VSX copy lingered. These are the author's renderings of third-party findings; the supplied evidence does not include the underlying Kaspersky research.\n\nThe post further references OX Security findings: CVE-2025-65717 in Live Server with a CVSS score of 9.1, CVE-2025-65715 in Code Runner, and CVE-2025-65716 in Markdown Preview Enhanced. According to the author, every published version of those three is affected and the maintainers never responded to disclosure. The practical consequence drawn is that if an editor serves an older build, no patched version is waiting on the other side of an update.\n\nTwo Cursor defaults are pinpointed as amplifiers. In Cursor, Workspace Trust is shipped disabled, the author says, and its Marketplace Install Cooldown defaults to 0; when set, that cooldown delays installs until a version has been available for a specified number of hours. Given those defaults, the post contends, the moment auto-update triggers, a malicious update pushed to Open VSX can reach every developer within an organization.\n\nThe remedy proposed is an audit the author says takes an afternoon. It suggests baselining with code --list-extensions --show-versions, comparing that against cursor --list-extensions --show-versions, and cross-checking the on-disk extensions folder, whose directory names embed versions. It then suggests querying the Open VSX API per extension to compare version and publisher against the Microsoft listing.\n\nThe author lists conditions to flag: a publisher differing between registries, an installed version trailing the Microsoft listing by more than a minor release, a publisher showing as Anysphere where the original vendor was expected, or an extension installed but absent from Open VSX entirely. Each is a triage heuristic rather than a confirmed compromise indicator, and the post offers no data on how often any of them occurs.\n\nThe author's stated position is that malware scanning at the proxy does not address this problem, because a scanner will pass extensions that are clean but stale, or that come from a publisher the team never vetted. The post argues an allowlist is the single highest-value control here, and calls a cooldown under 72 hours for anything touching credentials negligence dressed as convenience. That is an opinion, presented as such.\n\nConcrete steps are recommended: compare the two extension lists and assign each discrepancy a named owner; make AllowedExtensions a team-wide default-deny setting via MDM or the team dashboard; configure the Marketplace Install Cooldown to no less than 72 hours and enable Open VSX signature verification, which, the author notes, establishes origin rather than intent; and, until replacements are chosen, treat any installed version of Live Server, Code Runner, or Markdown Preview Enhanced as affected.\n\nFor freelancers, designers and developers working across client environments, the practical implication is that an extension inventory becomes part of onboarding and handoff. If a contractor moves a project between VS Code and Cursor, or joins a client's Cursor workspace, the extension set is not guaranteed to be equivalent, and the post's diff commands are a low-cost way to surface mismatches before they matter. Editorial interpretation: treating the extension list as configuration to be reviewed, rather than as ambient tooling, is the transferable habit here.\n\nThe post's own recommendations carry tradeoffs. A default-deny allowlist reduces exposure but adds friction whenever a developer wants a new tool, and it requires someone to own the list. A 72-hour cooldown delays legitimate security patches as well as malicious ones. Signature verification confirms who published an artifact, not whether the artifact is safe, a limitation the author states directly.\n\nSeveral things remain unknown from the supplied evidence. The post does not quantify how common publisher swaps or Anysphere substitutions are in practice; it closes by asking readers what they found, which indicates the author lacks that data. The Kaspersky loss figure and the Microsoft takedown timing are relayed secondhand. The OX Security CVE details and the claim that maintainers did not respond are likewise reported rather than shown. The post also does not state which Cursor versions or dates the described defaults apply to.\n\nThe most defensible reading is narrow. A community author has documented a registry architecture difference between VS Code and Cursor, cited a specific July 2025 malicious extension and three named CVEs as evidence that drift has consequences, and published a repeatable audit procedure. The audit commands and the flagging criteria are the actionable part; the incident narratives and dollar figures should be treated as attributed claims pending the primary sources.\n\nFor teams that want to act, the post's own sequencing is sensible: run the diff first, then argue about policy. The author explicitly invites readers to report what their diffs turned up, a reasonable acknowledgment that the prevalence question is still open. Until that data exists, the case for an allowlist rests on the mechanism and the cited incidents rather than on measured frequency.",
  "category": "dev",
  "language": "en",
  "datePublished": "2026-10-14T22:17:47.708Z",
  "dateModified": "2026-10-14T22:17:47.708Z",
  "eventDate": null,
  "sourcePublicationDate": "2026-10-14T16:59:09.000Z",
  "source": {
    "name": "dev.to",
    "url": "https://dev.to/secbyjasonmiller/same-extension-id-different-publisher-what-actually-installs-when-your-team-moves-to-cursor-2ggd",
    "kind": "community"
  },
  "practicalImpact": "Editorial interpretation: freelancers and developers who move projects between VS Code and Cursor, or who join a client's Cursor workspace, should treat the installed extension list as reviewable configuration. The post's diff commands (code --list-extensions --show-versions versus cursor --list-extensions --show-versions, plus the on-disk extensions folder) are a low-cost way to surface publisher or version mismatches during onboarding and handoff, before a mismatch becomes a support problem.",
  "limitations": "All findings come from a single dev.to community post and are author claims, not independently verified. The Kaspersky loss figure, the Microsoft takedown timing, and the OX Security CVE details are relayed secondhand and the primary research is not in the supplied evidence. The post does not quantify how common publisher swaps or Anysphere substitutions are, does not state which Cursor versions or dates the described defaults apply to, and does not provide pricing or availability details for the recommended controls. The allowlist and cooldown recommendations are the author's opinions, and signature verification is described by the author as proving origin rather than intent.",
  "keyPoints": [
    "The author claims Cursor cannot use Microsoft's extension marketplace and instead proxies Open VSX, so the same publisher.extension ID can resolve to a different publisher or different code.",
    "The post says Cursor ships its own \"Anysphere\" replacement builds for some popular extensions that never reached Open VSX, and that auto-update is on by default with no extension lockfile or pinning.",
    "It cites a July 2025 malicious \"Solidity Language\" extension on Open VSX that ran a PowerShell script on install, passed 50,000 downloads, and is linked by the author to a roughly $500,000 loss for one Cursor user via Kaspersky research.",
    "It references OX Security CVEs in Live Server (CVSS 9.1), Code Runner and Markdown Preview Enhanced, claiming all published versions are affected and maintainers did not respond to disclosure.",
    "The author recommends diffing code --list-extensions against cursor --list-extensions, enabling a default-deny allowlist, and setting the Marketplace Install Cooldown to at least 72 hours."
  ],
  "review": {
    "status": "source-reviewed",
    "checkedAt": "2026-10-14T22:17:47.708Z",
    "method": "Automated comparison against retrieved source text; not independent fact-checking.",
    "correctionNote": null
  },
  "sources": [
    {
      "id": 1,
      "url": "https://dev.to/secbyjasonmiller/same-extension-id-different-publisher-what-actually-installs-when-your-team-moves-to-cursor-2ggd",
      "publisher": "dev.to",
      "title": "Same Extension ID, Different Publisher: What Actually Installs When Your Team Moves to Cursor",
      "publishedAt": 1791997149000,
      "fetchedAt": 1792016230900,
      "hash": "0b11814ae3bdbb0f16a87c5736a5cf2ae7cec08eb50cef702388fc205c177ce4",
      "kind": "community"
    }
  ],
  "claims": [
    {
      "claim": "The author states that Cursor cannot use Microsoft's extension marketplace and routes extension search and downloads through its own proxy in front of Open VSX.",
      "source": 1,
      "id": "claim-1",
      "url": "https://freelancenews.online/news/community-post-warns-cursor-extension-ids-can-resolve-to-different-e684b539#claim-1"
    },
    {
      "claim": "The post says Cursor's documentation acknowledges that the same publisher.extension name can point to a different publisher or different code on Open VSX than on Microsoft's marketplace.",
      "source": 1,
      "id": "claim-2",
      "url": "https://freelancenews.online/news/community-post-warns-cursor-extension-ids-can-resolve-to-different-e684b539#claim-2"
    },
    {
      "claim": "The author claims Cursor ships its own \"Anysphere\" replacement builds for some popular extensions that never made it to Open VSX.",
      "source": 1,
      "id": "claim-3",
      "url": "https://freelancenews.online/news/community-post-warns-cursor-extension-ids-can-resolve-to-different-e684b539#claim-3"
    },
    {
      "claim": "The post says a malicious \"Solidity Language\" extension on Open VSX ran a PowerShell script on install in July 2025, passed 50,000 downloads, and that one crypto-industry Cursor user lost roughly $500,000 per Kaspersky research.",
      "source": 1,
      "id": "claim-4",
      "url": "https://freelancenews.online/news/community-post-warns-cursor-extension-ids-can-resolve-to-different-e684b539#claim-4"
    },
    {
      "claim": "The author cites OX Security CVEs in Live Server (CVSS 9.1), Code Runner and Markdown Preview Enhanced, saying every published version is affected and maintainers never responded to disclosure.",
      "source": 1,
      "id": "claim-5",
      "url": "https://freelancenews.online/news/community-post-warns-cursor-extension-ids-can-resolve-to-different-e684b539#claim-5"
    },
    {
      "claim": "The post states Cursor ships with Workspace Trust disabled and its Marketplace Install Cooldown defaults to 0.",
      "source": 1,
      "id": "claim-6",
      "url": "https://freelancenews.online/news/community-post-warns-cursor-extension-ids-can-resolve-to-different-e684b539#claim-6"
    },
    {
      "claim": "The author recommends diffing code --list-extensions against cursor --list-extensions, enabling AllowedExtensions default-deny, and setting the Marketplace Install Cooldown to at least 72 hours.",
      "source": 1,
      "id": "claim-7",
      "url": "https://freelancenews.online/news/community-post-warns-cursor-extension-ids-can-resolve-to-different-e684b539#claim-7"
    }
  ],
  "formats": {
    "html": "https://freelancenews.online/news/community-post-warns-cursor-extension-ids-can-resolve-to-different-e684b539",
    "markdown": "https://freelancenews.online/news/community-post-warns-cursor-extension-ids-can-resolve-to-different-e684b539.md",
    "json": "https://freelancenews.online/news/community-post-warns-cursor-extension-ids-can-resolve-to-different-e684b539.json"
  }
}