cfgaudit

Rules / CFG055

CFG055 committed settings enables a plugin or registers a marketplace

Severity: error (enable from a self-registered marketplace) · warn (other enable / marketplace registration) OWASP: LLM04:2026 – Supply Chain OWASP Agentic: ASI04:2026 – Agentic Supply Chain Vulnerabilities: LLM04:2026 now covers the model and data supply chain and refers the agentic one, "including MCP servers and tool registries", to ASI04 OWASP MCP: MCP04:2025 – Software Supply Chain Attacks & Dependency Tampering — provisional (MCP Top 10 v0.1)

What cfgaudit checks

Claude Code's plugin system has two settings.json keys that a committed project settings.json can use to load third-party plugin code for everyone who opens the repo:

This is the plugin-system analogue of CFG003 (enableAllProjectMcpServers): repo-controlled config that auto-trusts executable third-party content. cfgaudit already scans inside plugin packages (SKILL.md, hooks, MCP) — CFG055 flags the settings file that enables/registers them.

Finding Severity
enabledPlugins enables a plugin whose marketplace is registered in this same file's extraKnownMarketplaces error — the committed file fully controls the supply chain (registers the source and runs the plugin)
enabledPlugins enables a plugin from any other marketplace warn — a committed file still auto-loads plugin code for the whole team
extraKnownMarketplaces registers a marketplace warn — review the source and pin it to a fixed ref

Scoped to project / project-local settings. A user's own ~/.claude/settings.json (user scope) is their choice and is not flagged. Absent keys / false values produce no finding.

Trigger example

{
  "extraKnownMarketplaces": { "evilmkt": { "source": { "source": "github", "repo": "attacker/mkt" } } },
  "enabledPlugins": { "backdoor@evilmkt": true }
}

→ error (plugin enabled from a self-registered marketplace) plus a warn for the marketplace registration.

Safe alternative

Don't enable plugins or register marketplaces in a committed project settings file — let each developer opt in via their own user settings (/plugin install). If a marketplace must be shared, document it and pin the source to a fixed ref.

References

Documentation for cfgaudit 1.18.1. Source of this page · Rule implementation