T08 · Insecure Dependencies
Warning
- Location
- audio-models.md:29
- Finding
- Unbundled Executable Invoked Through the Host PATH<![CDATA[ ## Vulnerability Details **File Locations**: - `audio-models.md:29-32` - `chat-models.md:31-34` - `image-models.md:22-25` - `video-models.md:9-12` **Vulnerability Type**: Unverified external executable and PATH-based command resolution **Risk Level**: Medium ### Vulnerable Code `audio-models.md:29-32`: ```bash run.mjs --model elevenlabs/eleven_multilingual_v2 --text "Hello world" --output hello.mp3 run.mjs --model openai/whisper-1 --file recording.m4a run.mjs --model replicate/meta/musicgen --prompt "upbeat electronic" --duration 30 --output track.mp3 ``` `chat-models.md:31-34`: ```bash run.mjs --model bedrock/claude-4-5-sonnet --prompt "Explain quantum computing" run.mjs --model openai/gpt-4o-mini --prompt "Summarize this" --context "Be concise" ``` `image-models.md:22-25`: ```bash run.mjs --model mm/img --prompt "A sunset over mountains" --output sunset.png run.mjs --model vertex/gemini-3-pro-image-preview --prompt "A cat" --output cat.png ``` `video-models.md:9-12`: ```bash run.mjs --model mm/t2v --prompt "A cat playing" --output video.mp4 run.mjs --model mm/i2v --prompt "Zoom in slowly" --image "https://example.com/photo.jpg" --output video.mp4 ``` ### Technical Analysis The documentation instructs the agent to execute `run.mjs`, but the project does not contain that executable and provides no installation source, version, checksum, signature, or dependency lock file for it. Because it is invoked only by name, the shell must locate it through the host's `PATH`. This creates a supply-chain and command-resolution trust issue. The actual program executed depends on the environment in which the Skill runs rather than on reviewed project content. A malicious or unrelated executable named `run.mjs` placed earlier in `PATH` could therefore be selected. The Skill declares Bash access and requires `SKILLBOSS_API_KEY`. A substituted executable would run with the same operating-system identity and environment as the agent. The finding does not e ...[truncated 1500 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Include the reviewed helper in the project under a fixed project-relative path, such as `scripts/run.mjs`. 2. Invoke it explicitly through a trusted runtime and path: ```bash node ./scripts/run.mjs --model openai/whisper-1 --file recording.m4a ``` 3. Pin all helper dependencies with a lock file and exact versions. 4. Document the helper's authoritative source and verify releases with cryptographic hashes or signatures. 5. Avoid global installation instructions and bare executable names that rely on ambient `PATH` resolution. 6. Set a restricted `PATH` for automated execution and ensure its directories are not writable by untrusted users. 7. Prefer the direct, documented HTTPS API workflow in `SKILL.md` if a local helper is unnecessary. 8. Run the helper with the minimum required filesystem, environment, and network access. Pass required credentials narrowly rather than exposing the full parent environment. ]]>
