Skip to content

Security: minimumReleaseAge setting for mitigating supply chain attacks on extensions #316867

@karlhorky

Description

@karlhorky

In the last years, supply chain attacks have increased dramatically. A few examples in the VS Code extension ecosystem:

Allow for minimumReleaseAge-style security config from other package managers / updaters, to require a minimum age on VS Code extensions before they are installed (also when installed via CLI, etc) when either:

  1. Installing the latest version
  2. Updating an extension manually
  3. Updating an extension automatically

Default: Also, similar to the pnpm v11 note in Prior Art below, consider making a small delay the default (somewhere between 1 and 3 days), so that there is time for:

  1. security scanners such as Socket to find and report malicious extensions
  2. VS Code Marketplace and OpenVSX to remove the malicious extensions

Exclude mechanism: There should be a way of excluding certain package names, package name patterns and publishers from the minimumReleaseAge setting, eg. like the pnpm minimumReleaseAgeExclude setting.

Centralized management via enterprise policy: Some users have commented that a centralized management via eg. GPO or MDM would be helpful:

@SherwoodFold in comment 4510110043: Additionally, this setting needs to be manageable by MDM profiles/configs so admins can actually manage their org's exposure.

@HendrikJan opened a similar issue #272765 which collected 12 upvotes. It was marked as a duplicate of #79689, but #79689 is not related to security (and is closed).

Prior Art

A lot of these have appeared lately because of the supply chain attacks over the last years.

Default: pnpm v11 recently changed the default to 1-day minimumReleaseAge without any configuration:

Supply-chain protection on by default. minimumReleaseAge defaults to 1440 (1 day)

Source: https://pnpm.io/blog/releases/11.0

Metadata

Metadata

Assignees

Labels

extensionsIssues concerning extensionsfeature-requestRequest for new features or functionality

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions