Back to skill

Security audit

Understand-Anything

Security checks for vulnerabilities and agentic risk

Overview

This skill appears intended to analyze codebases, but it grants broad local script execution and workspace mutation with weak containment.

Install only if you are comfortable with the skill reading the target repository, running generated local scripts, and writing/deleting files under .understand-anything/. Avoid running it on untrusted repositories or paths with unusual characters until it adds stronger prompt-injection handling, per-run private temp directories, quoted path handling, and explicit consent for command execution.

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 (3)

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:55
Finding

Untrusted Repository Content Is Injected into Privileged Subagent Prompts

Content
View full analysis
**Additional context from main session:** > > Project README (first 3000 chars): > ``` > $README_CONTENT > ``` > > Package manifest: > ``` > $MANIFEST_CONTENT > ``` > > Use this context to produce more accurate project name, description, and framework detection. The README and manifest are authoritative — prefer their information over heuristics. ``` The tour-generation phase repeats the same unsafe pattern: ```markdown Dispatch a subagent using the prompt template at `./tour-builder-prompt.md`. Read the template file and pass the full content as the subagent's prompt, appending the following additional context: > **Additional context from main session:** > > Project README (first 3000 chars): > ``` > $README_CONTENT > ``` > > Project entry point: `$ENTRY_POINT` > > Use the README to align the tour narrative with the project's own documentation. ``` ### Technical Analysis The Skill reads repository-controlled README and manifest content and directly appends that content to privileged subagent prompts. Markdown code fences are presentational syntax and do not provide an instruction/data security boundary. A malicious repository can place model-directed instruc ...[truncated 1957 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
project-scanner-prompt.md:139
Finding

Predictable Shared Temporary Files Permit Local Symlink and Race Attacks

Content
View full analysis
" "/tmp/ua-scan-results.json" ``` ```markdown After the script completes, read `/tmp/ua-scan-results.json`. ``` `file-analyzer-prompt.md`: ```bash cat > /tmp/ua-file-analyzer-input-.json << 'ENDJSON' { "projectRoot": "", "allProjectFiles": [], "batchFiles": [] } ENDJSON ``` ```bash node /tmp/ua-file-extract-.js /tmp/ua-file-analyzer-input-.json /tmp/ua-file-extract-results-.json ``` `architecture-analyzer-prompt.md`: ```bash cat > /tmp/ua-arch-input.json << 'ENDJSON' { "fileNodes": [], "importEdges": [] } ENDJSON ``` ```bash node /tmp/ua-arch-analyze.js /tmp/ua-arch-input.json /tmp/ua-arch-results.json ``` `tour-builder-prompt.md`: ```bash cat > /tmp/ua-tour-input.json << 'ENDJSON' { "nodes": [], "edges": [], "layers": [] } ENDJSON ``` ```bash node /tmp/ua-tour-analyze.js /tmp/ua-tour-input.json /tmp/ua-tour-results.json ``` `graph-reviewer-prompt.md`: ```bash node /tmp/ua-graph-validate.js "" "/tmp/ua-review-results.json" ``` ```markdown After the script completes, read `/tmp/ua-review-results.json`. ``` ### Technical Analysis The Skill directs subagents to create, execute, and trust scripts and result files at fixed, globally predictable paths under `/tmp`. Although file-analyzer paths contain a batch index, the index is predictable and does not provide secure isolation. On mult ...[truncated 1978 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Note
Location
SKILL.md:407
Finding

Unquoted Project Root Is Used in Recursive Cleanup

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
Findings (20)

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
95% confidence
Finding

The skill issues a recursive deletion command using a variable-expanded path: rm -rf $PROJECT_ROOT/.understand-anything/intermediate. If PROJECT_ROOT is unset, malformed, unexpectedly empty, or attacker-influenced, this pattern can delete unintended files or directories, and rm -rf provides no built-in safety or recovery.

Content

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

  1. Clean up intermediate files:

    bash
    rm -rf $PROJECT_ROOT/.understand-anything/intermediate
    
  2. Report a summary to the user containing:

Context-Inappropriate Capability

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The prompt requires the agent to generate and execute Node.js code and retry on failure, turning a documentation/architecture analysis workflow into arbitrary code execution. Because the script is synthesized from prompt-supplied graph content and then run via shell, this materially increases the attack surface to command execution, resource abuse, and unsafe handling of adversarial input.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill performs multiple workspace-modifying actions, including creating directories, writing JSON outputs, and later deleting intermediate files, but it does not prominently warn the user that running it will modify the repository contents. In an agent setting, silent filesystem changes can surprise users, overwrite expected state, or cause unintended side effects in sensitive workspaces.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The skill instructs passing README and manifest contents into subagents without notifying the user that repository content will be propagated beyond the main execution context. Even if the files are commonly non-secret, they may contain internal URLs, credentials by mistake, roadmap details, or other sensitive metadata, so undisclosed sharing increases privacy and data-handling risk.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The prompt instructs the subagent to generate and execute a Node.js script and shell commands, which materially increases capability from passive analysis to code execution. Because the script is derived from prompt-provided data and run in the agent environment, this can enable command execution, unsafe file access, dependency on ambient privileges, and a larger attack surface than necessary for an understanding-focused skill.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The prompt directs the subagent to write a new file into the target project directory, which changes the workspace during an analysis task. Even though the content is just analysis output, this expands the skill from read-only understanding into mutation of user files, creating risk of unintended overwrite, pollution of repositories, or abuse if the output path is influenced elsewhere.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The prompt instructs a subagent to write and execute a script chosen from Node.js, Python, or bash in order to analyze repository files. That grants unnecessary code-execution capability to a code-understanding workflow, increasing the risk of prompt-induced command execution, unsafe file access, and environment abuse if repository content influences the generated script or its invocation.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

Explicitly allowing bash/grep extraction expands the agent's capability from structured analysis to arbitrary shell command construction. In an adversarial repository, shell access is especially dangerous because filenames, content-derived strings, or prompt injection can lead to command misuse, data exfiltration, or unintended modification beyond the stated analysis purpose.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The prompt directs the agent to write results into the project directory even though the skill is described as analysis/understanding. Writing into the repository breaks read-only expectations, can interfere with builds or tooling, and creates an avenue for unwanted file modification if an agent is manipulated into changing paths or content.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The prompt explicitly instructs a subagent to write and execute a Node.js script against a supplied graph file. Even though the stated goal is deterministic validation, this expands the skill from passive analysis into arbitrary code execution, which creates risk if file paths, inputs, or surrounding environment are attacker-controlled.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

Requiring the agent to write and execute an arbitrary script as part of repository understanding is dangerous because the generated code is not pre-reviewed and may be influenced by adversarial repository content or prompt manipulation. This converts a read-mostly analysis skill into an autonomous code-execution capability with broad local access.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The prompt requires generating and executing a local script plus running file-discovery commands against the project. Allowing an LLM-driven skill to author and execute code materially increases attack surface because prompt injection from repository contents can steer script behavior, and command execution can have unintended effects beyond passive analysis.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The prompt instructs the agent to execute shell/Node/Python code against the local project but gives no explicit user warning about command execution. In the context of an analysis skill, hidden execution is especially risky because users may reasonably expect passive inspection, while the actual behavior enables active operations on the host.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The prompt instructs the agent to create a directory and write scan-result.json inside the target project, which changes user files despite the skill being framed as analysis. Unprompted workspace modification can pollute repositories, trigger hooks or CI side effects, and violates read-only expectations for a code-understanding task.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill directs writing scan results into the project directory without any user-facing warning that local files will be modified. Even if the write is limited to a JSON artifact, silent modification of the workspace can surprise users, interfere with git status, and create trust and safety issues.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The prompt instructs the agent to write a generated artifact into the project workspace, which expands a code-understanding skill from read/analyze behavior into repository modification. Even though the file is placed under an intermediate directory, silent writes can alter the workspace, trigger downstream tooling, or create an unexpected persistence channel without explicit user consent.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
89% confidence
Finding

The prompt tells the agent to write analysis results into a project file without warning the user that the repository will be modified. This weakens user consent and transparency, and in sensitive workflows even low-risk writes can trigger CI changes, dirty working trees, or accidental commits.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Low
Category
Not specified by scanner
Confidence
82% confidence
Finding

The prompt directs the subagent to write validation artifacts to temp paths and later to a project-relative review file, introducing file write behavior beyond read-only architecture understanding. Unnecessary write capabilities can be abused to overwrite files, leave tampering artifacts, or interact unsafely with symlinks or unexpected path layouts.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

The skill instructs writing a review result into the project directory without any user-facing warning or explicit consent about modifying repository contents. While the file is small and purpose-related, silent project modification can surprise users, pollute working trees, or interfere with automated workflows.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
92% confidence
Finding

The markdown directs the agent to write a JSON file into the project workspace without a user-facing warning that repository files will be modified. While the specific artifact is low risk, undisclosed writes violate least surprise and can interfere with clean working trees, CI expectations, or other automated processes.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.