Back to skill

Security audit

Reference Maintainer

Security checks for vulnerabilities and agentic risk

Overview

The skill is a documentation generator, but it can copy unredacted configuration and credential data into persistent plaintext reference files without clear scoping or confirmation.

Install only if you are comfortable with the skill generating persistent local documentation from source/config files. Do not run it on files containing passwords, API keys, tokens, private keys, or production connection strings unless you first add redaction and keep generated references out of version control.

Vulnerability Patterns
  • 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
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/universal_doc_generator.py:68
Finding

Sensitive Configuration Data Is Duplicated into Plaintext Documentation

Content
View full analysis
Dict[str, Any]: """Extract configuration from JSON files.""" with open(self.source_file, 'r') as f: return json.load(f) def _yaml_config_extract(self) -> Dict[str, Any]: """Extract configuration from YAML files.""" with open(self.source_file, 'r') as f: return yaml.safe_load(f) ``` It then serializes the complete configuration into Markdown, YAML, and JSON output files: ```python # Markdown documentation output_subdir = os.path.join(self.output_dir, os.path.basename(self.source_file).replace('.py', '')) os.makedirs(output_subdir, exist_ok=True) with open(os.path.join(output_subdir, 'system_reference.md'), 'w') as md_file: md_file.write(f'# System Reference: {os.path.basename(self.source_file)}\n\n') md_file.write(f'**Generated:** {datetime.now().isoformat()}\n\n') md_file.write('## Configuration\n') md_file.write('```yaml\n') md_file.write(yaml.dump(config, default_flow_style=False)) md_file.write('```\n') # YAML Schema with open(os.path.join(self.output_dir, 'system_schema.yaml'), 'w') as yaml_file: yaml.dump({ 'source': self.source_file, 'generated_at': datetime.now().isoformat(), 'config': config }, yaml_file) # JSON Details with open(os.path.join(self.output_dir, 'system_details.json'), 'w') as json_file: json.dump({ 'source': self.source_file, 'generated_at': datetime.now().isoformat(), 'config': config }, json_file, indent=2) ``` The documentation schema explicitly identifies credentials as documenta ...[truncated 2443 chars]
Remediation
View remediation
Vulnerability Patterns
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (3)

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The trigger phrases listed in the skill description are broad and semantically fuzzy, such as 'document system', 'maintain docs', and 'create expert memory'. This increases the chance the skill will be invoked unintentionally in unrelated contexts, which can cause over-collection of repository or system details and expose sensitive configuration, credential, or architecture information through generated documentation.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
89% confidence
Finding

The module docstring says this is a "Generalized reference updater for any codebase," which implies broadly reusable behavior. However, the entrypoint hardcodes sentiment_decay_model.py as the only target instead of accepting arbitrary input, contradicting the stated generality of the tool's behavior.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
92% confidence
Finding

This code creates a directory and writes a markdown file under a derived path in references/, which is a file-system modification. While the script prints Docs updated. after completion, there is no prior disclosure, confirmation, or explanatory docstring/comment warning that running the script will create directories and overwrite generated documentation output.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.