claude-code - 💡(How to fix) Fix [FEATURE] minReleaseAge setting for plugin auto-update (supply-chain quarantine) [1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
anthropics/claude-code#55665Fetched 2026-05-03 04:47:37
View on GitHub
Comments
0
Participants
1
Timeline
3
Reactions
0
Author
Participants
Timeline (top)
labeled ×3

Fix Action

Fix / Workaround

The standard mitigation in package ecosystems is a release-age quarantine. npm has min-release-age, bun has minimumReleaseAge, pnpm has minimum-release-age, uv has UV_EXCLUDE_NEWER. They all enforce: "ignore versions published less than N days ago." This catches most opportunistic supply-chain attacks (typically caught and unpublished within hours-to-days) without blocking legitimate updates indefinitely.

Code Example

{
  "marketplaces": {
    "claude-plugins-official": {
      "source": "...",
      "autoUpdate": true,
      "minReleaseAge": "7d"
    }
  }
}
RAW_BUFFERClick to expand / collapse

Preflight Checklist

  • I have searched existing requests and this feature hasn't been requested yet
  • This is a single feature request (not multiple features)

Problem Statement

Plugins ship code that auto-executes on next session: hooks, MCP servers, shell scripts. Auto-update for plugins (already requested in #51350) therefore has a fundamentally different threat model from auto-updating an npm dependency — a compromised plugin runs immediately under the user's full shell privileges the next time they start Claude Code.

The standard mitigation in package ecosystems is a release-age quarantine. npm has min-release-age, bun has minimumReleaseAge, pnpm has minimum-release-age, uv has UV_EXCLUDE_NEWER. They all enforce: "ignore versions published less than N days ago." This catches most opportunistic supply-chain attacks (typically caught and unpublished within hours-to-days) without blocking legitimate updates indefinitely.

Claude Code currently has no equivalent. Once auto-update lands (#51350), the next typosquat/compromise will be auto-installed within a session of being published.

Proposed Solution

Add a minReleaseAge field that gates auto-update by upstream publish age. Pairs cleanly with the auto-update setting in #51350:

{
  "marketplaces": {
    "claude-plugins-official": {
      "source": "...",
      "autoUpdate": true,
      "minReleaseAge": "7d"
    }
  }
}

Behavior:

  • On marketplace refresh, compute publish age per plugin from the upstream commit/tag timestamp.
  • Skip applying any version younger than minReleaseAge.
  • Still surface "queued, applying in N days" to the user so the delay is visible, not invisible.

Defaults:

  • For internal/Anthropic-published plugins (/plugins): 0 is fine — Anthropic controls them.
  • For external plugins (/external_plugins): default to 7d.
  • For user-added marketplaces: default to 7d, overrideable per-marketplace.

0 (or unset) preserves today's behavior for users who explicitly want it.

Alternative Solutions

  • Manual gate — tell users to wait a week before running /plugin update. Doesn't compose with auto-update; relies on memory.
  • Allowlist of trusted plugins — bypasses the issue but requires curation Anthropic likely doesn't want to take on.
  • Reproducible builds + signing — better long-term answer but a much bigger lift; quarantine is the cheap interim.

Priority

Medium - Would be very helpful (especially as a precondition to enabling auto-update by default for external plugins)

Feature Category

Configuration and settings (plugins / supply-chain security)

Use Case Example

A team enables autoUpdate: true for a popular community plugin via #51350. A maintainer's account is compromised and a malicious version is published containing a hook that exfiltrates ~/.ssh/. Without quarantine, every team member on a stale-cache fix in the next session runs the malicious hook. With minReleaseAge: "7d", the bad version is detected and unpublished by community/Socket within ~24h before any auto-update fires; the team is unaffected.

This is exactly how min-release-age saved npm users from the recent chalk/debug and nx compromises.

Related

  • #51350 — Enable marketplace auto-update through settings.json (the feature this builds on)
  • #45051 — Marketplace serves oldest version instead of latest (separate bug, but partially mitigates auto-update risk today by sheer accident)
  • #37252, #38271 — /plugin update cache staleness

extent analysis

TL;DR

Implement a minReleaseAge field to gate auto-update by upstream publish age, similar to min-release-age in npm, to mitigate supply-chain attacks.

Guidance

  • Add a minReleaseAge field to the marketplace configuration to specify the minimum age of a release before it can be auto-updated.
  • Set default values for minReleaseAge based on plugin type: 0 for internal/Anthropic-published plugins, 7d for external plugins, and 7d for user-added marketplaces.
  • Compute publish age per plugin from the upstream commit/tag timestamp on marketplace refresh and skip applying any version younger than minReleaseAge.
  • Surface "queued, applying in N days" to the user to make the delay visible.

Example

{
  "marketplaces": {
    "claude-plugins-official": {
      "source": "...",
      "autoUpdate": true,
      "minReleaseAge": "7d"
    }
  }
}

Notes

This solution builds on the auto-update feature requested in #51350 and provides a mitigation for supply-chain attacks by introducing a release-age quarantine.

Recommendation

Apply workaround by implementing the proposed minReleaseAge field to gate auto-update by upstream publish age, as it provides a effective mitigation for supply-chain attacks without blocking legitimate updates indefinitely.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

claude-code - 💡(How to fix) Fix [FEATURE] minReleaseAge setting for plugin auto-update (supply-chain quarantine) [1 participants]