2 min read AI-generated

Claude Code 2.1.228: When Synced Skills Become an Attack Surface

Copy article as Markdown

Skills synced from claude.ai could shadow local commands and quietly run shell code. Version 2.1.228 closes that hole – and finally makes Grep use ripgrep.

Featured image for "Claude Code 2.1.228: When Synced Skills Become an Attack Surface"

Eighteen changes in one release, and the most important isn’t a feature but a closed hole. Claude Code 2.1.228 is out, and this time it’s about skills – specifically the ones synced from your claude.ai account.

The problem with skills

Until now, a skill pulled from claude.ai could shadow a local command. You type something into the terminal, and a synced skill happens to share the name? Then the skill might run instead of your local command. Worse: those skills could execute shell code. That’s not a theoretical toy – it’s a real attack surface, a skill quietly taking over what you meant to run yourself.

2.1.228 flips that around. Local commands now take precedence, and synced skills no longer shadow them. Shell execution from those skills is blocked, and their metadata is sanitized before loading. In short: what comes from outside can’t silently grab the wheel anymore.

Grep is now ripgrep

The second change matters to anyone running Claude Code across larger projects. The Grep tool now uses ripgrep for good and is dedicated to search tasks. In practice that means faster, more consistent searches across the whole project. If you’ve ever waited for a search to crawl through a fat monorepo tree, you know why that’s more than cosmetics.

Two fixes round it out. Interactive sessions could stop redrawing entirely after a rare internal layout error – the process kept running, only the screen froze. Fixed. And on Windows, Git or Git Bash wasn’t being found when Claude Code was launched from a parent folder. That’s sorted too.

My take

Skills are one of the strongest concepts in Claude Code – reusable capabilities Claude loads on demand. But that’s exactly what makes them a worthwhile target. When something comes from the cloud and gets to run code locally, the boundary has to be crystal clear. Anthropic tightening this before a real incident happens is the right order of operations.

And ripgrep as the fixed foundation? Long overdue. Anthropic keeps shipping versions on a near-daily cadence. If you work in production, update – here mostly for the skill hardening.


Sources: