Back to skill

Security audit

Claude Code Wingman

Security checks for vulnerabilities and agentic risk

Overview

This skill is a real Claude Code session orchestrator, but it can automatically approve trust and tool-permission prompts that normally require human review.

Install only if you intend to delegate high-impact coding actions to Claude Code from chat and can run it in trusted, disposable, or well-contained project environments. Avoid auto mode for normal repositories, review every approval request carefully, do not use 'always' unless the project and action class are trusted, and treat the bundled background approvers and /tmp approval files as sensitive local automation.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
Findings (2)

T05 · Unauthorized Access and Privilege Escalation

Error
Location
auto-approver.sh:24
Finding

Automatic Approval Bypasses Claude Code Trust and Permission Boundaries

Content
View full analysis
/dev/null || true # Step 1: Create tmux session echo "[Wingman] Creating tmux session..." tmux new-session -d -s "$SESSION_NAME" -c "$WORKDIR" # Step 2: Start approver in background if [ "$INTERACTIVE" = true ]; then echo "[Wingman] Starting interactive approver..." LOG_FILE="/tmp/interactive-approver-${SESSION_NAME}.log" INTERACTIVE_APPROVER="$SCRIPT_DIR/interactive-approver.sh" touch "$LOG_FILE" && chmod 600 "$LOG_FILE" "$INTERACTIVE_APPROVER" "$SESSION_NAME" > "$LOG_FILE" 2>&1 & APPROVER_PID=$! echo "[Wingman] Interactive approver running (PID: $APPROVER_PID)" echo "[Wingman] You'll be notified when approval is needed" else echo "[Wingman] Starting auto-approver..." LOG_FILE="/tmp/auto-approver-${SESSION_NAME}.log" touch "$LOG_FILE" && chmod 600 "$LOG_FILE" "$AUTO_APPROVER" "$SESSION_NAME" > "$LOG_FILE" 2>&1 & APPROVER_PID=$! echo "[Wingman] Auto-approver running (PID: $APPROVER_PID)" fi # Step 3: Start Claude Code echo "[Wingman] Launching Claude Code..." tmux send-keys -t "$SESSION_NAME" "claude" C-m # Wait for Claude Code to initialize echo "[Wingman] Waiting for Claude Code to initialize..." sleep 5 # Check for trust prompt and handle it echo "[Wingman] Checking for trust prompt..." for i in {1..5}; do OUTPUT=$(tmux capture-pane -t "$SESSION_NAME" -p) if echo "$OUTPUT" | grep -q "Do you trust"; then echo "[Wingman] Trust prompt detected, approving..." tmux send-keys -t "$SESSION_NAME" Enter sleep 2 break fi sleep 1 done ``` `auto-approver.sh:24-37`: ```bash # Look for "Do you trust... ...[truncated 3941 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
interactive-approver.sh:7
Finding

Predictable Shared Temporary Approval Files Permit Response Spoofing and Symlink Attacks

Content
View full analysis
" exit 1 fi mkdir -p "$APPROVAL_DIR" PENDING_FILE="$APPROVAL_DIR/${SESSION_NAME}.pending" RESPONSE_FILE="$APPROVAL_DIR/${SESSION_NAME}.response" ``` `interactive-approver.sh:42-69`: ```bash if [ -f "$PENDING_FILE" ]; then # Check for user response if [ -f "$RESPONSE_FILE" ]; then RESPONSE=$(cat "$RESPONSE_FILE") echo "[Interactive-Approver] User responded: $RESPONSE" case "$RESPONSE" in yes|1) echo "[Interactive-Approver] Approving (option 1)..." tmux send-keys -t "$SESSION_NAME" Enter ;; always|2) echo "[Interactive-Approver] Approving always (option 2)..." tmux send-keys -t "$SESSION_NAME" Down Enter ;; no|3) echo "[Interactive-Approver] Declining..." tmux send-keys -t "$SESSION_NAME" Down Down Enter ;; *) echo "[Interactive-Approver] Unknown response, defaulting to decline" tmux send-keys -t "$SESSION_NAME" Down Down Enter ;; esac rm -f "$PENDING_FILE" "$RESPONSE_FILE" sleep 2 fi else ``` `interactive-approver.sh:80-93`: ```bash cat > "$PENDING_FILE" << EOF Session: $SESSION_ ...[truncated 4117 chars]
Remediation
View remediation
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (98)

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The changelog explicitly documents a fully hands-off auto-approver that detects and answers Claude Code approval and trust prompts, effectively bypassing human consent gates. In the context of a WhatsApp-based orchestrator/monitor, this materially expands the skill into unattended authorization of potentially sensitive actions, increasing the chance of unauthorized file, shell, network, or trust-scope changes.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

Automatic handling of approval and folder-trust prompts is context-inappropriate for a skill presented as a session orchestrator/monitor because those prompts are security boundaries intended for a human to evaluate. Bypassing them enables the skill to silently expand access or execute actions the user did not consciously approve.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
92% confidence
Finding

The skill claims broad remote monitoring/control but the documented implementation relies on local session inspection, local files, and background daemons with undeclared resource use. This is dangerous because it obscures the real trust boundary and can cause users to underestimate privacy and command-execution risks.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

The skill claims broad remote monitoring/control but the documented implementation relies on local session inspection, local files, and background daemons with undeclared resource use. This is dangerous because it obscures the real trust boundary and can cause users to underestimate privacy and command-execution risks.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The skill claims broad remote monitoring/control but the documented implementation relies on local session inspection, local files, and background daemons with undeclared resource use. This is dangerous because it obscures the real trust boundary and can cause users to underestimate privacy and command-execution risks.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The skill claims broad remote monitoring/control but the documented implementation relies on local session inspection, local files, and background daemons with undeclared resource use. This is dangerous because it obscures the real trust boundary and can cause users to underestimate privacy and command-execution risks.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The skill claims broad remote monitoring/control but the documented implementation relies on local session inspection, local files, and background daemons with undeclared resource use. This is dangerous because it obscures the real trust boundary and can cause users to underestimate privacy and command-execution risks.

Content

No source excerpt is available for this finding.

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
90% confidence
Finding

The example approval payload includes a destructive shell command, 'rm -rf ./build && npm run build', and the workflow encourages approving such actions remotely via short chat commands. Even as an example, this normalizes approving dangerous shell operations without robust validation, increasing the chance of command abuse, spoofing, or operator error.

Content

Scanner excerpt · SKILL.md (reported line 409)May include surrounding context.

text
🔒 Session 'vsr-bugfix' needs approval

Bash(rm -rf ./build && npm run build)

Reply with:
• approve vsr-bugfix - Allow once

Context-Inappropriate Capability

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The stated purpose is session orchestration and monitoring, but the guide documents a separate capability that automatically grants Claude Code permissions. Because this approval mechanism is not necessary for monitoring and can authorize arbitrary tool actions within a project, it increases the chance of unsafe file, command, or network operations being executed unchecked.

Content

No source excerpt is available for this finding.

Missing User Warnings

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The usage guide normalizes automatic approval of permission prompts without warning users that those prompts exist to prevent unsafe or high-impact actions. In this context, the absence of warnings makes the feature more dangerous because users may enable it without understanding that it suppresses an important safety control.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

The script actively detects trust and permission prompts in a tmux session and automatically confirms them, including folder trust and broader session/project approval. This bypasses the human decision point those prompts are meant to enforce, making it easy for unsafe operations or untrusted workspaces to be approved without review.

Content

No source excerpt is available for this finding.

Missing User Warnings

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

Sensitive trust and consent prompts are approved solely based on simple text matching, with no interactive confirmation beyond log messages. This removes meaningful consent, and the broad matching on phrases like 'Do you want' risks approving unrelated or more dangerous prompts than intended.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

The skill is described as monitoring/orchestrating Claude Code sessions, but this script goes further by making security-sensitive decisions on the user's behalf. That mismatch is dangerous because a user may expect observability tooling, while the code silently escalates to approving prompts that grant trust or ongoing permissions.

Content

No source excerpt is available for this finding.

Missing User Warnings

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

The code detects a trust prompt and automatically presses Enter, effectively granting trust without explicit user consent. Trust decisions often relax safeguards or allow broader access to the working directory, so auto-accepting them can let an unreviewed session proceed with elevated assumptions about safety.

Content

No source excerpt is available for this finding.

Missing User Warnings

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The skill explicitly promotes spawning Claude Code with automatic approval of permission prompts, which removes an important human safety gate before the spawned agent can execute potentially dangerous actions. In this context, the skill is designed for broad coding tasks across arbitrary projects, so auto-approving permissions can enable unintended file modification, command execution, or access to sensitive project data without informed user review.

Content

No source excerpt is available for this finding.

Missing User Warnings

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

Automatically approving trust prompts without user confirmation defeats the purpose of an approval gate. Because this skill manages multiple Claude Code/tmux sessions and can be monitored remotely, an attacker or unsafe repository content that triggers a trust prompt could gain a smoother path to broader file access or reduced sandbox friction once the script blindly accepts the prompt.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

These notes explicitly explore ways to disable or bypass Claude Code's approval workflow, including pre-populating approval state and programmatic approval. Approval prompts are a security control intended to require human authorization for sensitive actions, so researching methods to suppress them is dangerous and not necessary for simple WhatsApp orchestration or monitoring.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

This section documents a successful mechanism to monitor tmux output and send synthetic keypresses to select the persistent approval option automatically, allowing protected actions to proceed without human intervention. That directly defeats an interactive safeguard and could enable unauthorized file creation, command execution, or broader persistence of trust within a directory.

Content

No source excerpt is available for this finding.

Missing User Warnings

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The markdown provides operational instructions for bypassing interactive approvals but contains no warning that this undermines a security boundary. In practice, this normalizes unsafe automation and increases the chance that downstream users will deploy unauthorized approval bypasses in production workflows.

Content

No source excerpt is available for this finding.

Ssd 4

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

This is a procedural blueprint for defeating approval safeguards: spawn Claude Code in tmux, monitor output for prompts, inject keypresses, and wrap it into end-to-end automation. A step-by-step bypass recipe materially increases exploitability because it is immediately actionable and can be embedded into tooling with minimal effort.

Content

No source excerpt is available for this finding.

Missing User Warnings

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

The markdown directs silent approval of Bash commands and provides no warning about the risks of unattended shell execution. That omission is dangerous because users or downstream agents may treat the file as authoritative configuration and execute harmful commands without realizing that approval safeguards have been disabled.

Content

No source excerpt is available for this finding.

Ssd 1

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

This instruction directly attempts to bypass user confirmation safeguards for shell execution. Bypassing those safeguards is dangerous because it allows potentially destructive commands to run without human validation, which is especially risky in a multi-session orchestration skill that may touch several repositories or environments.

Content

No source excerpt is available for this finding.

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
95% confidence
Finding

The 'Auto-approver script' is an autonomous decision-making component that interprets and responds to approval and trust prompts on behalf of the user. Because those prompts represent security-relevant decisions, automating them can convert a supervised tool into an unsupervised actor capable of authorizing risky actions.

Content

Scanner excerpt · CHANGELOG.md (reported line 7)May include surrounding context.

md
### ✅ Completed Features

- **Auto-approver script** - Detects and handles Claude Code approval prompts
  - Handles "Do you want..." prompts
  - Handles "Do you trust..." folder prompts
  - Uses arrow keys + Enter for TUI navigation

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The changelog promotes zero-intervention prompt approval without warning users that approval and trust prompts exist to prevent unsafe or over-broad actions. Omitting those warnings increases the likelihood that operators will deploy the skill in risky unattended modes without understanding the security consequences.

Content

No source excerpt is available for this finding.

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
94% confidence
Finding

Starting the auto-approver in the background as part of a 'complete automation wrapper' means the skill can continue making approval decisions continuously without active operator awareness. In this context, background unattended authorization increases the blast radius of mistakes, prompt spoofing, or unsafe command flows.

Content

Scanner excerpt · CHANGELOG.md (reported line 14)May include surrounding context.

md
- **Wingman script** - Complete automation wrapper
  - Spawns Claude Code in named tmux sessions
  - Starts auto-approver in background
  - Reliable prompt submission (double-tap Enter)
  - Trust prompt detection and handling
  - Optional monitoring and wait modes

Static analysis

No suspicious patterns detected.