T08 · Insecure Dependencies
- Location
SKILL.md:14- Finding
Unpinned Third-Party Packages Are Downloaded and Executed
- Content
View full analysis
/`. 2. Run `npx podcast-helper transcribe --output-dir --json`. ``` ```bash npx podcast-helper transcribe --output-dir ./out/ --json ``` ```bash npx podcast-helper transcribe --engine mlx-whisper --output-dir ./out/ --json ``` Additional unpinned installation commands include: ```bash npx skills add dairui1/podcast-helper --skill transcribe npx skills add dairui1/podcast-helper --skill transcribe -g pip install yt-dlp ``` ### Technical Analysis The documented default invokes packages through `npx` without an exact version or integrity constraint. When the package is not already available locally, `npx` can retrieve and execute the currently published package from the configured registry. The installation instructions similarly retrieve mutable package or repository references without a commit, release version, checksum, or signature. Consequently, the reviewed Skill does not fully determine the code that will execute at invocation time. A future compromised release, registry-account takeover, malicious transitive dependency, or unexpected package-resolution change could introduce arbitrary executable behavior after this Skill has been audited. ### Attack Path 1. An attacker compromises the publisher account, package registry entry, source repository, or a transitive dependency referenced by one of the unpinned packages. 2. The attacker publishes a malicious release under the expected package name or modifies the mutable installation source. 3. A user or agent follows the Skill and runs an u ...[truncated 819 chars]- Remediation
View remediation
`. 2. Use a lockfile with integrity hashes for repository-local installations. 3. Pin source-based Skill installation to an immutable commit or signed release rather than a mutable repository reference. 4. Verify package provenance, signatures, checksums, maintainer identity, and registry namespace before execution. 5. Prefer an already reviewed repository-local executable over downloading code during routine transcription. 6. Disable or restrict lifecycle scripts where package-manager functionality permits. 7. Execute third-party tools in a sandbox with minimal filesystem access, a restricted environment, and limited network access. 8. Document the exact supported versions and establish a controlled dependency-update and re-audit process. ]]>
