T09 · Insecure Skill Coding Practices
- Location
SKILL.md:215- Finding
Validation and auto-fix scripts operate on an unintended default file
- Content
View full analysis
1 else 'SKILL.md' ) ``` The auto-fix workflow repeats the same error: ```bash python3 << 'PYEOF' ``` ```python def fix_metadata(filepath): with open(filepath, 'r', encoding='utf-8') as f: content = f.read() fixes_applied = [] # Fix 1: Convert multi-line YAML metadata to single-line JSON # Pattern: metadata:\n openclaw:\n ... multi_line_pattern = r'(metadata:)\n(\s+openclaw:\n(?:\s+\w+:.*\n)+)' match = re.search(multi_line_pattern, content) if match: # Parse the multi-line YAML structure yaml_block = match.group(2) # Extract values using regex emoji = re.search(r'emoji:\s*["\']?([^"\'\n]+)["\']?', yaml_block) emoji = emoji.group(1) if emoji else "🔧" bins = re.findall(r'-\s+(\w+)', re.search(r'bins:\s*\n((?:\s+-\s+\w+\n)+)', yaml_block).group(1) if re.search(r'bins:\s*\n((?:\s+-\s+\w+\n)+)', yaml_block) else "") # Handle requires_env (wrong format) env_match = re.search(r'requires_env:\s*\n\s*-\s*name:\s*(\w+)', yaml_block) env_vars = [env_match.group(1)] if env_match else [] primary_env = env_vars[0] if env_vars else "" # Build JSON metadata metadata_json = { "openclaw": { "emoji": emoji, "requires": { "bins": bins, "env": env_vars } } } if primary_env: metadata_json["openclaw"]["primaryEnv"] = primary_env # Replace in content new_metadata = f'm ...[truncated 2875 chars]- Remediation
View remediation
