T09 · Insecure Skill Coding Practices
- Location
scripts/package-skill.sh:91- Finding
Unrestricted Recursive Packaging May Disclose Sensitive or Symlink-Targeted Files
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is mostly a coherent ClawHub skill-authoring helper, but its packaging script can unintentionally include sensitive files when creating publishable packages.
Install only if you are comfortable reviewing packages before publishing. Do not run the packaging script on directories containing .env files, keys, credentials, private config, or symlinks; inspect the generated archive contents before publishing it to ClawHub.
scripts/package-skill.sh:91Unrestricted Recursive Packaging May Disclose Sensitive or Symlink-Targeted Files
Skill modifies its own code, configuration, or behavior at runtime. Self-modification enables an agent to escalate privileges, disable safety constraints, or install persistent backdoors.
└── assets/ # Optional: templates, resources
### Phase 4: Write SKILL.md
#### Frontmatter (YAML)
Skill manipulates agent memory, state, or stored context. Memory corruption can alter personality, override safety rules, or cause unpredictable behavior.
**Guidelines:**
- One topic per file
- <5K words per file
- Link from SKILL.md with clear context
- No deeply nested references
- Language: English preferred, domain-specific allowed
The file explicitly requires the skill description to be in English and repeats that requirement for core metadata and workflow text. Under the policy, forcing a specific language without user opt-in or a documented regional/compliance justification is a natural-language policy violation.
The SKILL.md lists shell scripts such as scripts/init-skill.sh, scripts/package-skill.sh, and scripts/validate.sh as part of the skill's supported workflow, but the anti-patterns section says "Don't ... Use platform-specific scripts (sh/bat)." This is an active contradiction in the guidance because .sh scripts are exactly the kind of platform-specific scripts the document tells users not to use.
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.
Quick check:
# Count words in SKILL.md
wc -w .qwen/skills/my-skill/SKILL.md
# Target: <500 words for metadata + body
This markdown file is a validation checklist, and at L27 it only checks for the presence of "Use when:" triggers, not their specificity or exclusion conditions. That omission can allow overly broad trigger language to pass validation, increasing the risk of unintended skill invocation.
No suspicious patterns detected.