T08 · Insecure Dependencies
- Location
SKILL.md:10- Finding
Unpinned Third-Party CLI May Execute Unreviewed Package Code
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 10, 146–152, and 180
Vulnerability Type: Unpinned third-party dependency execution
Risk Level: MediumVulnerable Code
yaml allowed-tools: Bash(npx postbridge-cli:*), Bash(postbridge-cli:*)bash npx postbridge-cli accounts # list connected accounts and ids npx postbridge-cli upload --file ./clip.mp4 # returns a media id npx postbridge-cli post \ --caption "..." \ --accounts <id1>,<id2>,<id3> \ --media <media-id> \ --schedule "2026-09-01T14:00:00Z"bash npx postbridge-cli results --post-id <post-id> # omit --post-id for all recent resultsTechnical Analysis
The skill authorizes and repeatedly instructs the agent to execute
postbridge-clithroughnpxwithout specifying an exact package version or verifying package integrity. When a suitable local package is unavailable,npxcan resolve and execute a package obtained from the configured package registry. Consequently, the code executed during a future skill run is not necessarily the code that existed when the skill was audited.The project contains no package manifest, lockfile, checksum, vendored implementation, or provenance policy that fixes the CLI to a reviewed artifact. The alternative permitted form,
postbridge-cli, also relies on an externally installed executable whose identity and version are not established by this project.This creates a supply-chain trust boundary: compromise of the registry package, its maintainer account, a transitive dependency, or the package-resolution environment could result in arbitrary package code being executed under the agent's local privileges.
Attack Path
- An attacker compromises the
postbridge-clipackage, one of its install-time dependencies, or the registry account used to publish it. - The attacker releases a malicious version w ...[truncated 1406 chars]
- An attacker compromises the
- Remediation
View remediation
Remediation Suggestions
- Pin the CLI to a reviewed exact version rather than resolving the latest available release, for example by declaring an exact dependency version without a range.
- Commit a package manifest and lockfile, and install dependencies with a deterministic frozen-lockfile command such as
npm ci. - Invoke the lockfile-controlled local executable instead of allowing ad hoc registry resolution through an unversioned
npxcommand. - If
npxmust be retained, specify an exact audited package version and configure it not to accept unexpected installation prompts. - Verify package provenance and registry integrity metadata before upgrades. Review both direct and transitive dependency changes.
- Remove or narrow the generic
Bash(postbridge-cli:*)permission unless the executable's trusted path, ownership, and version are validated. - Run the CLI with least privilege in an isolated environment containing only the media and credentials required for the current operation.
- Prevent unnecessary exposure of environment variables and credential stores, and scope API credentials to the minimum accounts and operations required.
