T08 · Insecure Dependencies
- Location
SKILL.md:32- Finding
Unpinned zx Package Installation and Execution
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This is a documentation-only zx shell-scripting skill that explains powerful command-running features but does not hide behavior or include an executable payload.
Install only if you want help writing or reviewing zx scripts. Treat generated zx commands as real shell code: pin package versions when possible, avoid running remote or Markdown scripts from untrusted sources, and keep secrets out of environment files passed to commands that may call external services.
SKILL.md:32Unpinned zx Package Installation and Execution
references/cli.md:139Execution of a Mutable Remote Script Without Integrity Verification
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
zx --env=/path/to/.env script.mjs
zx --cwd='/foo/bar' --env='../.env' # => /foo/.env
### `--ext`
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
zx --env=/path/to/.env script.mjs
zx --cwd='/foo/bar' --env='../.env' # => /foo/.env
### `--ext`
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
zx --env=/path/to/.env script.mjs
zx --cwd='/foo/bar' --env='../.env' # => /foo/.env
### `--ext`
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
zx --env=/path/to/.env script.mjs
zx --cwd='/foo/bar' --env='../.env' # => /foo/.env
### `--ext`
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
zx --env=/path/to/.env script.mjs
zx --cwd='/foo/bar' --env='../.env' # => /foo/.env
### `--ext`
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
zx --env=/path/to/.env script.mjs
zx --cwd='/foo/bar' --env='../.env' # => /foo/.env
### `--ext`
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
Environment variables map. Defaults to process.env.
$.env = { ...process.env, NODE_ENV: 'production' }
$.cwdCode accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
Environment variables map. Defaults to process.env.
$.env = { ...process.env, NODE_ENV: 'production' }
$.cwdCode accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
Environment variables map. Defaults to process.env.
$.env = { ...process.env, NODE_ENV: 'production' }
$.cwdCode accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
Environment variables map. Defaults to process.env.
$.env = { ...process.env, NODE_ENV: 'production' }
$.cwdCode accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
Environment variables map. Defaults to process.env.
$.env = { ...process.env, NODE_ENV: 'production' }
$.cwdCode accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
Environment variables map. Defaults to process.env.
$.env = { ...process.env, NODE_ENV: 'production' }
$.cwdThe skill explicitly says it should trigger for 'executing remote scripts' and also documents HTTP requests via fetch(), but provides no warning about remote code execution, trust boundaries, or verification of downloaded content. In a shell-scripting skill, that omission increases the chance that users will execute untrusted code or pipe remote content into commands without scrutiny.
npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.
npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.
This markdown file describes executing shell commands as a core API feature, and later includes changing directories and killing processes, all of which can affect system state. The document provides usage examples but does not include any warning about command execution risks, destructive effects, or the need for caution when running commands.
The documentation recommends npx zx script.mjs without pinning a version, which can pull the latest package at execution time and expose users to supply-chain drift or a compromised upstream release. In a CLI/execution-focused skill, that guidance directly influences how users run code, making the risk practical rather than theoretical.
--install auto-installs missing dependencies before running, which can trigger execution of unreviewed packages and their lifecycle scripts. The document presents this as a convenience feature without any warning about package trust, registry integrity, or supply-chain risk.
The documentation states that zx executes js, ts, and shell code blocks embedded in Markdown files, but does not prominently warn that opening or running an untrusted .md file can lead to arbitrary code execution. Because Markdown is commonly perceived as inert documentation, this behavior materially increases the chance of accidental execution.
This line establishes bash as the default environment, but the file also documents alternatives such as PowerShell and manual shell override. Because the skill presents other options and does not force a human language or locale, this is at most a weak policy concern.
The fetch() section shows making network requests, and the dotenv section later demonstrates loading environment variables into command execution context, but the documentation does not warn that requests may transmit user or system data or that environment values may contain secrets. For markdown files, omission of such warnings is in scope when behaviors can affect privacy or system integrity.
This markdown file includes examples piping process output to '/tmp/output.txt' and creating a writable file stream, which are filesystem write operations. The surrounding documentation does not include any warning that these examples modify local files or may overwrite existing data.
No suspicious patterns detected.