Back to skill

Security audit

Web Builder

Security checks for vulnerabilities and agentic risk

Overview

This scaffolding skill is mostly transparent, but its script can overwrite arbitrary writable paths and the generated authenticated API has serious authorization gaps.

Review before installing or using this skill. Use only a safe new project name under an intended directory, avoid existing targets, and treat the generated backend as a prototype until path validation, overwrite protection, object-level authorization, and update field whitelisting are fixed.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • 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
Findings (2)

T09 · Insecure Skill Coding Practices

Error
Location
scripts/scaffold_neo_app.sh:8
Finding

Unvalidated Scaffold Paths Permit File Creation and Overwrite Outside the Intended Directory

Content
View full analysis
[--path apps] [--with-auth jwt]" exit 1 fi ROOT="$BASE_PATH/$NAME" FRONTEND="$ROOT/frontend" BACKEND="$ROOT/backend" mkdir -p "$FRONTEND/src" "$FRONTEND/public" mkdir -p "$BACKEND/src" "$BACKEND/src/config" "$BACKEND/src/models" "$BACKEND/src/controllers" "$BACKEND/src/routes" "$BACKEND/src/middlewares" cat > "$ROOT/README.md" <` redirections throughout the script, which overwrite existing destination files. ### Technical Analysis The script accepts `BASE_PATH` and `NAME` without validating their contents or canonicalizing the resulting path. A project name can contain `..` path components, while `--path` can directly designate any writable directory. The computed `ROOT` is never checked to ensure that it remains under the intended scaffold directory. Although variable expansion is quoted and therefore does not directly permit shell command injection, quoting does not prevent directory traversal. Shell output redirection also follows symbolic links and truncates an existing destination file before writing to it. The script does not reject an existing project directory, pre-existing files, or symbolic links. This violates the expected filesystem boundary of a scaffolding operation and allows user-controlled arguments to determine where files are created or overwritten. ### Attack Path 1. An attacker or untrusted caller supplies a crafted project path, for example: ```bash bash s ...[truncated 1271 chars]
Remediation
View remediation
&2 exit 1 fi ``` 2. Resolve `BASE_PATH` and `ROOT` to canonical absolute paths, then verify that `ROOT` is a strict descendant of the approved base directory. 3. If arbitrary `--path` values are not required, remove that option and use a fixed trusted output directory. 4. Reject `NAME` values containing `/`, `\`, `.` path segments, control characters, or traversal components. 5. Refuse to operate when the target project directory already exists rather than silently overwriting its contents. 6. Detect and reject symbolic links in every destination path component. 7. Use safe option termination, such as `mkdir -p -- "$path"`, for filesystem commands. 8. Create files exclusively where possible, for example by enabling `noclobber` or using an atomic exclusive-creation mechanism. 9. Add tests covering absolute paths, `../` traversal, existing destinations, and symbolic-link destinations. ]]>

T05 · Unauthorized Access and Privilege Escalation

Error
Location
scripts/scaffold_neo_app.sh:290
Finding

Generated Item API Lacks Object-Level Authorization

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • 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)

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
83% confidence
Finding

The skill instructs the agent to run a shell script but does not declare any explicit tool scope or permission boundaries. That creates an authorization gap where the skill can trigger code execution or environment access without clear least-privilege controls, increasing the chance of unintended command execution in contexts where the skill is auto-invoked.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The description includes broad activation language such as 'asks to build/create/scaffold a new app,' which could cause the skill to activate for many general software requests beyond the user's intended scope. In a skill that runs scaffolding commands, overbroad triggering increases the risk of unexpected file creation or command execution from ambiguous prompts.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The trigger phrase "just build it" is broad, informal language that can easily appear in normal conversation, causing this skill to activate when the user did not explicitly intend Neo App Mode. In an agentic coding context, unintended activation can lead to unwanted project scaffolding, stack assumptions, or application generation actions based on incomplete requirements.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.