T08 · Insecure Dependencies
Error
- Location
- README.md:21
- Finding
- Unpinned npx Installation Executes Mutable Third-Party Code<![CDATA[ ## Vulnerability Details **File Location**: `README.md:21-28` and `README.zh-CN.md:21-28` **Vulnerability Type**: Supply-chain risk from unpinned executable dependencies **Risk Level**: High ### Vulnerable Code ```markdown ## ⚡ Install(一行安装) ```bash npx skills add laowang-ai-xbb/free-ai-token ``` - **Requirements**: any Agent Skills-compatible client with web access enabled. Node.js 18+ is needed for `npx`. - **No terminal? Manual install**: download the latest zip from Releases and unzip it into your client's skills directory. ``` ### Technical Analysis The documented installation command invokes `npx` without pinning the `skills` package to a specific version. It also identifies the Skill by a mutable repository name rather than an immutable release tag or commit hash. `npx` can retrieve and execute package code during installation. Consequently, the effective installer code may differ from the code reviewed in this audit. The project does not provide a checksum, cryptographic signature, lock file, pinned installer version, or immutable Skill revision in this installation path. The audited repository does not itself contain a confirmed malicious installer, and there is no evidence that the current package is compromised. The vulnerability is that compromise of the package registry account, installer package, repository account, or mutable upstream revision could turn the documented installation command into a remote code-execution path. ### Attack Path 1. An attacker compromises the package publishing account, repository account, or another mutable component used by the `npx skills` installation process. 2. The attacker publishes a modified package version or replaces the repository content referenced by `laowang-ai-xbb/free-ai-token`. 3. A user follows the documented command without a version or integrity constraint. 4. `npx` downloads the current package and executes its installation behavior. 5. The malicious package or mutable Skill ...[truncated 885 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin the installer package to an audited version, for example: ```bash npx skills@X.Y.Z add laowang-ai-xbb/free-ai-token@v2.9.5 ``` 2. Prefer an immutable commit hash or signed release rather than a mutable repository branch. 3. Publish SHA-256 checksums for release archives and document verification before extraction. 4. Sign releases using a verifiable mechanism such as Sigstore or signed Git tags. 5. Use `npx --ignore-scripts` where compatible, or clearly document whether lifecycle scripts are executed. 6. Document the exact registry and package publisher so users can verify provenance. 7. Make the verified archive installation method the recommended path for security-sensitive environments. 8. Add automated release checks that confirm the archive contents match the signed source revision. ]]>
