The skill allows command injection and persistent malicious execution via user
Claims to do
Plugin Settings Pattern for Claude Code Plugins: Plugins can store user-configurable settings and state in `.claude/plugin-name.local.md` files within the project directory. This pattern uses YAML frontmatter for structured configuration and markdown content for prompts or additional context.
Actually does
This skill describes and provides examples for a pattern to manage plugin settings. It details how to read and parse `.claude/*.local.md` files using `bash` commands like `sed`, `grep`, `awk`, and `echo` to extract YAML frontmatter fields and markdown body content. It also shows how `bash` scripts (hooks) can use these settings and how commands/agents can be instructed to interact with these files.
The skill demonstrates using `tmux send-keys` with values (`coordinator_session`, `agent_name`) directly read from a user-controlled `.local.md` file. This allows for arbitrary command injection into the `tmux` session if an attacker can modify the settings file.
tmux send-keys -t "$COORDINATOR" "Agent $AGENT_NAME completed task" Enter
The skill provides an example of sanitizing user input by escaping double quotes when writing to a settings file. However, this is insufficient to prevent shell metacharacters (e.g., semicolons, backticks, dollar signs) from being injected, which could lead to command injection when the values are later read and used in shell scripts.
SAFE_VALUE=$(echo "$USER_INPUT" | sed 's/"/\\"/g')
The `.claude/*.local.md` files are designed to store persistent configuration. If an attacker can inject malicious settings into these files, it can lead to persistent execution of malicious commands or other undesirable behaviors whenever the associated hooks or commands are triggered.
Lifecycle: User-managed (not in git, should be in `.gitignore`)
The skill explicitly states that commands can use the `Bash` tool, granting the agent the ability to execute arbitrary shell commands. While this is a core feature, it significantly increases the attack surface when combined with the ability to read user-controlled configuration files.
allowed-tools: ["Read", "Bash"]
The provided example for validating file paths only checks for the `..` sequence. It does not account for other path manipulation techniques such as absolute paths, symlinks, or encoded characters, which could allow access to unintended files if a setting controls a file path.
if [[ "$FILE_PATH" == *".."* ]]; then ...
[](https://mondoo.com/ai-agent-security/skills/github/anthropics/claude-code/plugin-settings)<a href="https://mondoo.com/ai-agent-security/skills/github/anthropics/claude-code/plugin-settings"><img src="https://mondoo.com/ai-agent-security/api/badge/github/anthropics/claude-code/plugin-settings.svg" alt="Mondoo Skill Check" /></a>https://mondoo.com/ai-agent-security/api/badge/github/anthropics/claude-code/plugin-settings.svgSkills can read files, run commands, and access credentials. Mondoo helps organizations manage the security risks of AI agent skills across their entire fleet.