T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:411
- Finding
- Unpinned Third-Party Package Is Downloaded and Executed by npx## Vulnerability Details **File Location**: `SKILL.md`, line 411 **Vulnerability Type**: Supply-chain risk from unpinned dependency execution **Risk Level**: Medium **Vulnerable code:** ```bash npx --yes i18n-coverage-check --min 95 --base en --locales locales/ ``` ### Technical Analysis The recommended CI command uses `npx --yes` to resolve, download, and execute `i18n-coverage-check` without specifying an exact version, lockfile, or integrity value. The effective executable can therefore change after this Skill has been reviewed. Package installation and CLI execution can invoke package-controlled code in the developer or CI environment. If the package registry account, package release, or dependency chain is compromised, following this recommendation could execute attacker-controlled code. The automatic `--yes` option removes the interactive confirmation that might otherwise alert a user to package installation. This finding is limited to the documented command. The audit did not establish that the named package is currently malicious. ### Attack Path 1. An attacker compromises the package, its publisher account, or a transitive dependency and publishes a malicious version. 2. A developer or CI maintainer copies the documented command into a pipeline. 3. Because no version is pinned, `npx` resolves the package version available from the configured registry at execution time. 4. The malicious package's lifecycle or CLI code executes with the permissions and environment of the invoking process. 5. The payload can inspect accessible source files, environment variables, CI tokens, and other resources available to that process, or alter build artifacts. ### Impact Assessment Successful exploitation grants code execution with the privileges of the developer account or CI job running the command. The scope may include the checked-out repository, writable build outputs, environment variables, and CI credentials exposed t ...[truncated 277 chars]
- Remediation
- ## Remediation Suggestions - Prefer the local Python audit implementation already included in `SKILL.md`, avoiding dynamic package retrieval entirely. - If the npm tool is required, review it first and add an exact audited version to `devDependencies`. - Commit the package manifest and lockfile, install dependencies with a lockfile-enforcing command such as `npm ci`, and invoke the locked local binary through a package script. - Do not rely on an unversioned `npx --yes` command in CI. - Where supported, verify package provenance and registry integrity metadata. - Run the audit in a least-privileged CI job with read-only repository permissions, no deployment credentials, and no unrelated secrets. - Pin CI actions and build images as part of the same supply-chain hardening process.
