T09 · Insecure Skill Coding Practices
- Location
scripts/bun-fetch.sh:15- Finding
JavaScript Code Injection Through HTTP Request Arguments
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This Bun helper skill does what it advertises, but it gives broad file, command, and network power with unsafe input handling and little scoping.
Install only if you intend to give this skill broad local file, shell, and network authority and can run it in a constrained sandbox. It should be revised to avoid eval, pass data as arguments or stdin instead of generated source, restrict paths and network destinations, and require clear user approval for writes, commands, and outbound requests.
scripts/bun-fetch.sh:15JavaScript Code Injection Through HTTP Request Arguments
scripts/bun-fs.sh:11JavaScript Code Injection Through Filesystem Paths and Write Data
scripts/bun-process.sh:13Arbitrary Shell Execution and Second-Stage Bun Code Injection
scripts/bun-glob.sh:13Malformed and Spoofable JSON Generated From Globbed Filenames
This is the most serious finding: the skill is presented as Bun-native process support, but the underlying behavior is arbitrary shell command execution via eval. That enables command injection and unrestricted access to system resources reachable by the executing account, far beyond what a user may infer from the Bun-focused description.
This is the most serious finding: the skill is presented as Bun-native process support, but the underlying behavior is arbitrary shell command execution via eval. That enables command injection and unrestricted access to system resources reachable by the executing account, far beyond what a user may infer from the Bun-focused description.
This is the most serious finding: the skill is presented as Bun-native process support, but the underlying behavior is arbitrary shell command execution via eval. That enables command injection and unrestricted access to system resources reachable by the executing account, far beyond what a user may infer from the Bun-focused description.
The skill advertises network-capable operations but declares no explicit tool scope or permissions boundary. In an agent environment, missing scope metadata increases the chance that the skill is invoked with broader-than-expected authority and can perform external communication without clear policy review.
The trigger description is overly broad, covering common file and I/O requests that may cause this powerful skill to activate in many benign contexts. Because the skill includes file, process, and network operations, broad matching materially increases the risk of unnecessary invocation and misuse.
The write-file documentation omits warnings that it can modify arbitrary user data and create parent directories automatically. In an agent setting, undocumented write capability raises the risk of silent data corruption, unauthorized file placement, or persistence in sensitive paths.
The documentation describes command execution as a simple feature without warning that it runs shell commands. In context, this is dangerous because users or higher-level agents may treat it as routine process support, while shell execution can enable destructive commands, injection, and full access to local resources.
The network request capability is documented without warning that data may be sent to external services. This is dangerous because seemingly local tasks could trigger outbound transmission of prompts, file contents, tokens, or metadata, especially given the skill's broad trigger scope.
The script enables arbitrary outbound HTTP requests to any user-supplied URL with optional method and body, without restriction, validation, or policy checks. In an agent skill context, this can be abused for SSRF-like access to internal services, data exfiltration, or contacting attacker-controlled endpoints, and the broad network capability is more dangerous because the skill is callable as a reusable runtime primitive.
The script forwards user-controlled request bodies and URLs directly to remote endpoints without any disclosure, confirmation, or sensitivity checks. In an agent environment, this creates a realistic risk of silently transmitting secrets, prompts, local data, or other sensitive content to third parties, especially when combined with unrestricted destination control.
The write branch creates directories and writes arbitrary data to a provided path, which can modify the filesystem, but there is no confirmation prompt or explicit warning about this side effect. Aside from a success JSON message after completion, the script does not disclose the potentially destructive nature of overwriting files before performing the operation.
The script takes a caller-supplied string and passes it directly to eval, which executes arbitrary shell syntax, including command substitution, pipelines, redirection, and chained commands. In the context of an agent skill that exposes process execution capabilities, this creates an easy path to arbitrary command execution and can lead to full compromise of the host environment, data loss, or secret exfiltration.
The manifest presents a broad Bun runtime utility focused on Bun-specific filesystem, process, and network operations, with examples like Bun.file(), Bun.write(), and Bun.glob(). This file implements a concrete remote HTTP request capability via fetch to arbitrary URLs, which is narrower and more operationally significant than the documentation suggests for this script.
No suspicious patterns detected.