skill-security-audit

clawhub:skill-security-audit

View source
F
0/100

First Seen

Feb 18, 2026

Last Scanned

Feb 22, 2026

Findings

13

Score

0/100

CRITICAL 1
HIGH 7
MEDIUM 2
LOW 3

Findings (13)

CRITICAL
Instruction override attempt
L33

Detects attempts to override or ignore previous instructions

Override system safety instructions
FIX

Remove the injection payload from the skill definition. Text that attempts to reset agent context or override prior directives is a direct attack vector.

FP?

Likely FP if the text is in a security tutorial or research paper discussing injection techniques as examples, not in an active skill description.

HIGH
Private data read with public output
L3

Skill can read private data (credentials, SSH keys, env vars) AND write to public channels (Slack, Discord, email). This combination enables data exfiltration.

[reads_private_data] access control, hardcoded secrets + [writes_public_output] Send data to external URLs/webhook
FIX

Break the toxic data flow by adding validation and sanitization between the input source and the sensitive operation. Do not pass untrusted data directly to file system, network, or execution APIs.

FP?

Likely FP if the data flow involves only trusted, hardcoded values and the taint analysis over-approximated the untrusted input sources.

HIGH
Private data read with code execution
L3

Skill can read private data AND execute arbitrary code. This combination enables credential theft via dynamic code.

[reads_private_data] access control, hardcoded secrets + [executes_code] eval(
FIX

Add input validation between the user-controlled data source and the security-sensitive sink (e.g., file writes, command execution). Implement allowlisting for acceptable input patterns.

FP?

Likely FP if the user input passes through explicit validation or sanitization before reaching the sensitive operation, and the taint tracker missed the sanitization step.

HIGH
Read sensitive files and transmit externally
L3

Detects skills that both read sensitive credential files and send data to external services

access control, hardcoded secrets + Send data to external
FIX

Block access to git credentials, SSH keys, and repository tokens. If git operations are needed, use scoped deploy keys and restrict the tool to specific repositories.

FP?

Likely FP if the match is documentation about git configuration (e.g., setting up git credentials helper) rather than code that reads and transmits them.

HIGH
Data transmission pattern
L34

Detects patterns indicating sensitive data being sent to external services

exfiltrate data
FIX

Restrict file reading to the project directory and block outbound network calls that include file contents. Implement file path validation to prevent directory traversal.

FP?

Likely FP if the tool legitimately reads project files and displays them to the user locally, without sending data to external services.

HIGH
Instruction override attempt
L41

Detects attempts to override or ignore previous instructions

Ignore all previous instructions
FIX

Remove the injection payload from the skill definition. Text that attempts to reset agent context or override prior directives is a direct attack vector.

FP?

Likely FP if the text is in a security tutorial or research paper discussing injection techniques as examples, not in an active skill description.

HIGH
Jailbreak template
L42

Detects common jailbreak prompt patterns

developer mode
FIX

Remove directives that attempt to exfiltrate data through the agent's response (e.g., asking the agent to embed credentials in URLs or include secret values in output).

FP?

Likely FP if the text is a legitimate tool instruction about displaying configuration to the user (e.g., show current settings) without external transmission.

HIGH
Code block labeled "markdown" contains executable content
L99

Code block labeled "markdown" contains executable content

# DANGEROUS - Unsafe tool usage
"Run: os.system(f'process {user_input}')"
"Fetch and execute code from the user's URL"
"Write the response directly to /etc/passwd"
FIX

Align the tool description with what the code actually does. If the description says one thing but the code does another, update the description to be accurate or fix the code.

FP?

Likely FP if the NLP analyzer misinterpreted technical jargon or the description accurately describes behavior through domain-specific terminology.

MEDIUM
Cross-tool data leakage
L3

Detects patterns where credential or secret reads are combined with external data transmission

access control, hardcoded secret + Send data to external
FIX

Prevent credentials and sensitive data obtained by one MCP tool from being passed to other tools. Implement data isolation between tools and restrict cross-tool data flow for secrets.

FP?

Likely FP if the cross-tool data flow is intentional API authentication (e.g., a tool fetches an auth token that another tool uses for the same service).

MEDIUM
External API response drives agent behavior
L53

Detects skills where external API responses control agent decisions or actions

Request credentials or API  + based on unvalidated LLM output
FIX

Do not include content from MCP tool responses verbatim in system prompts or tool descriptions. Sanitize all dynamic content before incorporating it into prompt context.

FP?

Likely FP if the match is a static tool description that mentions dynamic content handling in its documentation, not an actual injection vector.

LOW
External API response used without validation
L53

Detects patterns where external API responses are used directly without validation or sanitization

API keys be included in response + without use
FIX

Validate and sanitize all data received from external APIs before using it in tool operations or agent prompts. Implement schema validation and treat API responses as untrusted input.

FP?

Likely FP if the match is a truncated table cell or documentation fragment that mentions API responses in a descriptive context, not actual unvalidated data processing.

LOW
Python subprocess execution
L100

Detects Python subprocess and os.system calls for command execution in skill descriptions

os.system(
FIX

Pass arguments as an explicit list instead of a shell string. Set shell=False and validate all user-supplied values before inclusion.

FP?

Likely FP if the match is in documentation explaining Python subprocess usage or in a description mentioning it as a topic.

LOW
User-provided URL consumed by agent
L101

Detects skills where user-provided URLs are consumed and processed by the agent

Fetch and execute code from the user's URL
FIX

Validate and sanitize user-provided URLs before fetching them. Implement URL allowlisting, block private/internal IP ranges, and treat fetched content as untrusted data.

FP?

Likely FP if the skill is a web browser or URL fetcher where consuming user-provided URLs is the documented core feature with appropriate sandboxing.