Back to skill

Security audit

Auto Design Clawhub

Security checks for vulnerabilities and agentic risk

Overview

The skill has a coherent design-assistant purpose, but it should be reviewed because it can auto-activate broadly, fetch mutable remote Markdown, write project files, and includes instructions that can persist itself into an agent skill directory.

Review before installing. This skill is not clearly malicious, but use it only if you are comfortable with broad automatic design influence, remote Markdown being fetched as a design reference, local design files being created, and optional Claude Code conversion writing into an agent skill directory. Prefer explicit invocation, pinned and verified design sources, and avoid running the conversion command unless you intentionally want to install it into Claude Code.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:141
Finding

Unpinned and Unverified Remote Design Content

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 141–147
Vulnerability Type: Untrusted supply-chain content retrieval
Risk Level: Medium

bash
# Auto-download from awesome-design-md
curl https://raw.githubusercontent.com/VoltAgent/awesome-design-md/main/design-md/{brand}/DESIGN.md

# Save to project
mkdir -p Docs/Design
cp downloaded.md Docs/Design/{brand}-DESIGN.md

Technical Analysis

The skill instructs the agent to retrieve a design specification from the mutable main branch of an external GitHub repository. It does not pin the resource to a reviewed commit, verify a checksum or signature, or validate the downloaded content before using it as an agent-facing design reference.

Consequently, the effective design instructions can change after the skill has been audited. If the upstream repository, maintainer account, or delivery path is compromised, hostile Markdown could be supplied and interpreted by an AI agent as operational instructions rather than inert design data.

The example also invokes curl without an output option but subsequently copies downloaded.md. As written, the response is sent to standard output and does not create that file. If a pre-existing downloaded.md is present, the workflow may copy stale or attacker-controlled local content instead.

The {brand} placeholder should also be constrained to the documented brand allowlist before being included in URLs or filesystem paths. Although no direct user-to-shell interpolation implementation is present in the audited file, explicit validation would prevent unsafe implementations from introducing path or command injection.

Attack Path

  1. An attacker compromises the upstream repository, a maintainer account, or another mechanism capable of modifying content on the referenced main branch.
  2. The attacker modifies a brand's DESIGN.md to contain misleading or hostile instructions.
  3. The skill fetches the mutab ...[truncated 1199 chars]
Remediation
View remediation

Remediation Suggestions

  1. Pin the remote resource to a reviewed immutable Git commit rather than main.

  2. Publish an expected SHA-256 digest and verify the downloaded file before use.

  3. Download explicitly and fail safely, for example:

    bash
    set -euo pipefail
    readonly BRAND="vercel"
    readonly COMMIT="REVIEWED_COMMIT_HASH"
    readonly EXPECTED_SHA256="EXPECTED_SHA256_DIGEST"
    
    case "$BRAND" in
      vercel|linear|cursor|raycast|supabase|claude|cohere|mistral|mintlify|notion|stripe|apple|framer) ;;
      *) echo "Unsupported brand" >&2; exit 1 ;;
    esac
    
    mkdir -p Docs/Design
    tmp_file="$(mktemp)"
    trap 'rm -f "$tmp_file"' EXIT
    
    curl --fail --silent --show-error --location \
      --output "$tmp_file" \
      "https://raw.githubusercontent.com/VoltAgent/awesome-design-md/${COMMIT}/design-md/${BRAND}/DESIGN.md"
    
    printf '%s  %s\n' "$EXPECTED_SHA256" "$tmp_file" | sha256sum --check -
    install -m 0644 "$tmp_file" "Docs/Design/${BRAND}-DESIGN.md"
    
  4. Treat downloaded Markdown as untrusted reference data. Explicitly instruct the consuming agent not to follow commands, tool requests, role changes, or safety-policy modifications embedded in it.

  5. Validate the document against an expected schema or extract only approved design-token fields instead of feeding the entire document into the agent context.

  6. Review upstream changes before updating the pinned commit and checksum.

  7. Remove the ambiguous cp downloaded.md workflow so stale files cannot be substituted for the actual response.

Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (18)

Agent Config Directory Access

High
Category
Agent Snooping
Confidence
91% confidence
Finding

The conversion command writes directly into .claude/skills/auto-design/skill.md, which is an agent configuration/skill-loading location. Any instruction that places content into an agent-controlled config directory is security-sensitive because it can alter future agent behavior and persist beyond the current task.

Content

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

md
oneLineConvert: |
          mkdir -p .claude/skills/auto-design && 
          echo "# Auto Design\n\n## Name\nauto-design\n\n## Description\nAuto-select and apply design systems from awesome-design-md based on project type and task context\n" > .claude/skills/auto-design/skill.md && 
          tail -n +35 SKILL.md >> .claude/skills/auto-design/skill.md

---

Vague Triggers

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The trigger conditions are extremely broad, matching common words like "design", "UI", "improve", and file creation patterns that occur in many normal development conversations. In combination with the skill's automatic behavior, this can cause the agent to activate unexpectedly, make network requests, and steer or modify work product without a clear user request.

Content

No source excerpt is available for this finding.

Agent Config Directory Access

High
Category
Agent Snooping
Confidence
91% confidence
Finding

This command again appends content into .claude/skills/auto-design/skill.md, creating or modifying a persistent agent skill file. Even if presented as a convenience feature, self-referential installation into the agent's skill directory is dangerous because it can change subsequent agent execution context without strong trust boundaries.

Content

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

mkdir -p .claude/skills/auto-design &&
echo "# Auto Design\n\n## Name\nauto-design\n\n## Description\nAuto-select and apply design systems from awesome-design-md" \

.claude/skills/auto-design/skill.md &&
tail -n +35 SKILL.md >> .claude/skills/auto-design/skill.md

text

**Option 2: AI-Assisted Conversion**

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
1. Copy `SKILL.md` content (skip YAML frontmatter)

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

Marking the skill as always: true makes it globally active regardless of user intent or task relevance. That broad scope increases the chance of unintended execution and compounds the risk from later behaviors such as network access, file writes, and design overrides.

Content

No source excerpt is available for this finding.

Skill Enumeration

Medium
Category
Agent Snooping
Confidence
80% confidence
Finding

Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Content

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

md
aiCompatibility:
      claudeCode:
        format: "markdown-headers"
        location: ".claude/skills/auto-design/skill.md"
        conversionSteps:
          - "Read YAML frontmatter for metadata"
          - "Copy all content after frontmatter to new file"

Skill Enumeration

Medium
Category
Agent Snooping
Confidence
80% confidence
Finding

Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Content

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

md
aiCompatibility:
      claudeCode:
        format: "markdown-headers"
        location: ".claude/skills/auto-design/skill.md"
        conversionSteps:
          - "Read YAML frontmatter for metadata"
          - "Copy all content after frontmatter to new file"

Skill Enumeration

Medium
Category
Agent Snooping
Confidence
80% confidence
Finding

Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Content

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

md
aiCompatibility:
      claudeCode:
        format: "markdown-headers"
        location: ".claude/skills/auto-design/skill.md"
        conversionSteps:
          - "Read YAML frontmatter for metadata"
          - "Copy all content after frontmatter to new file"

Skill Enumeration

Medium
Category
Agent Snooping
Confidence
80% confidence
Finding

Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Content

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

md
aiCompatibility:
      claudeCode:
        format: "markdown-headers"
        location: ".claude/skills/auto-design/skill.md"
        conversionSteps:
          - "Read YAML frontmatter for metadata"
          - "Copy all content after frontmatter to new file"

Skill Enumeration

Medium
Category
Agent Snooping
Confidence
80% confidence
Finding

Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Content

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

md
aiCompatibility:
      claudeCode:
        format: "markdown-headers"
        location: ".claude/skills/auto-design/skill.md"
        conversionSteps:
          - "Read YAML frontmatter for metadata"
          - "Copy all content after frontmatter to new file"

Skill Enumeration

Medium
Category
Agent Snooping
Confidence
80% confidence
Finding

Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Content

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

md
aiCompatibility:
      claudeCode:
        format: "markdown-headers"
        location: ".claude/skills/auto-design/skill.md"
        conversionSteps:
          - "Read YAML frontmatter for metadata"
          - "Copy all content after frontmatter to new file"

Skill Enumeration

Medium
Category
Agent Snooping
Confidence
80% confidence
Finding

Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Content

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

md
aiCompatibility:
      claudeCode:
        format: "markdown-headers"
        location: ".claude/skills/auto-design/skill.md"
        conversionSteps:
          - "Read YAML frontmatter for metadata"
          - "Copy all content after frontmatter to new file"

Skill Enumeration

Medium
Category
Agent Snooping
Confidence
80% confidence
Finding

Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Content

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

md
aiCompatibility:
      claudeCode:
        format: "markdown-headers"
        location: ".claude/skills/auto-design/skill.md"
        conversionSteps:
          - "Read YAML frontmatter for metadata"
          - "Copy all content after frontmatter to new file"

Skill Enumeration

Medium
Category
Agent Snooping
Confidence
85% confidence
Finding

Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Content

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

md
- "Save to .claude/skills/auto-design/skill.md"
        autoConvertible: true
        oneLineConvert: |
          mkdir -p .claude/skills/auto-design && 
          echo "# Auto Design\n\n## Name\nauto-design\n\n## Description\nAuto-select and apply design systems from awesome-design-md based on project type and task context\n" > .claude/skills/auto-design/skill.md && 
          tail -n +35 SKILL.md >> .claude/skills/auto-design/skill.md

Skill Enumeration

Medium
Category
Agent Snooping
Confidence
85% confidence
Finding

Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Content

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

md
- "Save to .claude/skills/auto-design/skill.md"
        autoConvertible: true
        oneLineConvert: |
          mkdir -p .claude/skills/auto-design && 
          echo "# Auto Design\n\n## Name\nauto-design\n\n## Description\nAuto-select and apply design systems from awesome-design-md based on project type and task context\n" > .claude/skills/auto-design/skill.md && 
          tail -n +35 SKILL.md >> .claude/skills/auto-design/skill.md

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill describes automatic download and file-writing behavior but does not prominently warn users that it will fetch remote content with curl and write local files. Lack of transparent disclosure undermines informed consent and makes accidental execution of side effects more likely.

Content

No source excerpt is available for this finding.

Skill Enumeration

Medium
Category
Agent Snooping
Confidence
80% confidence
Finding

Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Content

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

Tell Claude:

text
"Convert this ClawHub skill to Claude Code format. 
 The file is at .claude/skills/auto-design-clawhub/SKILL.md"

Option 3: Manual Steps

Context-Inappropriate Capability

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

The skill's stated purpose is to auto-select and apply design systems based on project context. However, this section adds a separate capability for converting the skill itself across platforms using shell commands that create .claude/skills/auto-design/skill.md, which is not necessary to perform design selection or application in a target project.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.