[BUG] [SECURITY] claude pulls from known marketplaces at start
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
When claude starts it attempts to pul from anthropics/claude-plugins-official.git and other places it has configured in ~/.claude/plugins/known_marketplaces.json by itself.
Why it is a problem?
- At each startup it tries to connect external repositories which could lead to supply chain attacks.
- It slows down startup.
- In some configuration in prevents claude from working properly.
When it prevents claude from working properly?
The claude plugin repo is located at:~/.claude/plugins/marketplaces/claude-plugins-official
and has remote:git@github.com:anthropics/claude-plugins-official.git
When a user has in its ~/.ssh/config configured to use an ssh key authentication with a password for git@github.com (which is common for security aware developers hat do not save their passwords) that causes git fetch to call ssh and subsequently ksshaskpass. On the terminal ksshaskpass captures the tty input and renders claude unusable. That is also a totaly unpredictable and violates the least astonishment principle (POLA).
This happens on each startup.
When run from within vscode the same happens each time a ne claude window is started causing the password popup to appear.
This is even more confusing when user has more than one marketplace configured in ~/.claude/plugins/known_marketplaces.json" in which case multiple popups appear. In the case of claude code in the terminal that leads to multiple consecutive password prompts to be started in the background making it even harder to understand what is going on.
What Should Happen?
This pull action should never happen without user ever trying to access the marketplace. Ideally user should be informed that the marketplace pull is going to happen and what addresses it's going to access and ask for confirmation. At the very least the https transport should be used as that is nto affected by user's ssh configuration.
Error Messages/Logs
Steps to Reproduce
- generate an ssh public key with password:
ssh-keygen -t ed25519 -a 100 -f ~/.ssh/github_id_ed25519 -C "test@example.com" -N 'qpqp01' - Configure ssh to use that key with github.com, eg.
$ cat >> ~/.ssh/config << EOF
Host github.com
ForwardAgent no
IdentityFile ~/.ssh/github_id_ed25519
EOF
It will not work if current .ssh/config already has Host * at the very end that caches all. In such case one need to move the Host github.com above it in the editor!
start claude
Claude Model
None
Is this a regression?
No, this never worked
Last Working Version
_No response_
Claude Code Version
2.1.42 (Claude Code)
Platform
Anthropic API
Operating System
Ubuntu/Debian Linux
Terminal/Shell
Other
Additional Information
_No response_
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗